चलिए देखते हैं कि सादे अंग्रेजी में इसका क्या अर्थ है।
class A[X]
का अर्थ है: एक वर्ग बनें जो एक प्रकार का पैरामीटर लेता है।
class C[M[X] <: A[X]]
का अर्थ है: सी एक वर्ग है कि एक प्रकार पैरामीटर है, जो एक वर्ग है कि एक प्रकार पैरामीटर लेता है और, पैरामिट्रीकृत होना चाहिए लेता हो, वर्ग एक ही प्रकार के साथ एक पैरामिट्रीकृत का एक उपवर्ग है।
जब आप
new C[A]
बारे में तुम कह रहे हो: पैरामीटर के रूप में एक साथ सी का एक उदाहरण बना सकते हैं। क्या उपर्युक्त मानदंडों का पालन करता है? हां, यह एक वर्ग है जो एक प्रकार का पैरामीटर लेता है, और पैरामीटरकृत यह पैरामीटरकृत स्वयं का उप-वर्ग है।
हालांकि, जब तुम
new C[A[Int]]
प्रकार पैरामीटर आप सी, एक [इंट] देने के लिए कोशिश कर रहे हैं लिखते हैं, मापदंड के अनुरूप नहीं है: एक [इंट] किसी भी प्रकार के पैरामीटर नहीं ले करता है, जो संकलक कृपया आपको बताता है। (और यह ए [एक्स] का उप-वर्ग नहीं है।)
स्रोत
2011-01-06 14:49:43
यह नौकरी भी नहीं करेगा। समस्या यह है कि सी एक प्रकार के पैरामीटर के साथ एक प्रकार की अपेक्षा करता है। जब आप नई सी [ए] आज़माते हैं तो यह काम करने जा रहा है, क्योंकि ए एक प्रकार का तर्क लेता है। – tim
यह काम नहीं करेगा - सी अब दो प्रकार के मानकों की अपेक्षा करता है। – gpampara