मेरे पास जेनेरिक के बारे में जावा प्रश्न है। मैं एक सामान्य सूची घोषित: फिरसूची <? MyType बढ़ाता है>
List<? extends MyType> listOfMyType;
कुछ विधि मैं का दृष्टांत और उस सूची में आइटम जोड़ कोशिश में:
listOfMyType = new ArrayList<MyType>();
listOfMyType.add(myTypeInstance);
कहाँ myTypeInstance
बस प्रकार MyType
का एक उद्देश्य है, यह संकलित नहीं होगा। इसे कहते हैं:
विधि जोड़ने में प्रकार सूची < कब्जा # 3-की (? कब्जा # 3-की MyType फैली)? MyType बढ़ाता है> तर्कों के लिए लागू नहीं है (MyType)
कोई विचार?
जोश बलोच कहते हैं: "पी ई सी एस याद रखें: निर्माता का विस्तार, उपभोक्ता सुपर।" चूंकि listOfMyType एक उपभोक्ता है (आप इसमें जोड़ रहे हैं), 'सुपर' मान्य है और' विस्तारित 'नहीं है। –
लिंक अब टूटा हुआ है। –
पैडेंट्री का प्वाइंट: आप विस्तार के साथ ''null'' डाल सकते हैं।इसके अलावा आप उस प्रकार और "डाल" संदर्भों को कैप्चर कर सकते हैं जिन्हें आपने पिछले "मिल गया" है। –