मैं दो सूचियों को तय करना चाहता हूं: सबसे पहले इंटीजर की एक सूची है। मैं इसे इस प्रकार घोषित करता हूं:जेनेरिक सूचियों की घोषणा में अंतर क्यों है?
List<Integer> ints= Arrays.asList(1,2,3);
यह ठीक काम करता है।
दूसरा ऑब्जेक्ट्स की एक सूची है। मैं इसे इस प्रकार घोषित करता हूं:
List<Object> objs= Arrays.asList(1,2.13,"three");
लेकिन जैसे ही मैं इसे लिखता हूं, ग्रहण में त्रुटि देता है। त्रुटि है:
Multiple markers at this line
- Type mismatch: cannot convert from List<Object&Comparable<?>&Serializable> to
List<Object>
- Type safety: A generic array of Object&Comparable<?>&Serializable is created for
a varargs parameter
इसके बजाय अगर मैं लिखने
List<Object> objs = Arrays.<Object>asList(1,2.13,"three");
यह ठीक काम करता है।
मैं कारण समझने में सक्षम नहीं हूं।
समझ गया। बेहद अच्छी व्याख्या के लिए धन्यवाद। इस तरह के भ्रम के मामले में आवेदन करने के लिए यह एक सुनहरा नियम होगा। –