निम्नलिखित कोड जावा में, मैंने एक सूची बनाई है nums
। मैं घोषणा के दौरान एक और सूची असाइन कर सकते हैं। लेकिन null
को छोड़कर नई वस्तुओं को जोड़ा नहीं जा सकता है। तो, क्या इसका मतलब है कि nums
पढ़ा गया है? क्यों? क्या उस सूची में नए आइटम जोड़ना संभव है?"? पेरेंट क्लास बढ़ाता है" केवल पढ़ने के लिए बनाता है?
List<Integer> ints = new ArrayList<Integer>();
ints.add(1);
ints.add(2);
List<? extends Number> nums = ints;
nums.add(3.14); //Generates error
nums.addAll(ints); //Generates error
nums.add(null); //works
System.out.println(nums.get(0)); //works
मैं इस link से गुजर चुका हूं। मुझे सटीक कारण नहीं मिल रहा है।
मुझे नहीं पता, nums.add ((संख्या) नया डबल (3.14)) ध्यान दें; परिणाम में त्रुटि: प्रकार सूची में कैप्चर (कैप्चर # 1-ऑफ? विस्तार संख्या) <कैप्चर # 1-के? संख्या बढ़ाता है> तर्कों के लिए लागू नहीं है (संख्या) –
यह प्रश्न देखें: http://stackoverflow.com/questions/2723397/java-generics-what-is-pecs – Natix
यह एक बहुत ही आम गलतफहमी है; लेकिन अधिकांश मामलों में गर्भधारण काम करता है :) – ZhongYu