में जेनेरिक प्रकारों के लिए स्वत: पूर्ण "प्रभावी इंटरफेस द्वारा ऑब्जेक्ट का संदर्भ लें" एक अच्छा अभ्यास है, जैसा कि प्रभावी जावा में उल्लिखित है। इसलिए उदाहरण के लिए मैं अपने कोड मेंग्रहण
List<String> al = new ArrayList<String>();
से अधिक
ArrayList<String> al = new ArrayList<String>();
पसंद करते हैं। एक कष्टप्रद बात यह है कि अगर मैं ArrayList<String> al = new
टाइप करता हूं और फिर ग्रहण में Ctrl + स्पेस दबाता हूं तो मुझे ArrayList<String>()
प्रोपोस्टल के रूप में मिलता है। लेकिन अगर मैं सूची अल = नया टाइप करता हूं और फिर Ctrl + Space दबाता हूं तो मुझे अज्ञात आंतरिक वर्ग को परिभाषित करने के लिए केवल प्रोपोस्टल मिलेगा, लेकिन new ArrayList<String>()
जैसे प्रोपोस्टल नहीं, 99% केस क्या है, या उदाहरण के लिए नया Vector<String>()
।
प्रश्न: क्या उप-वर्ग सामान्य प्रकार के प्रोपॉस्टल के रूप में प्राप्त करने का कोई तरीका है?
को यह सुझाव देने के लिए "उपयोग अमरूद और भी मुखर हो' Lists.newArrayList() ' –
निश्चित रूप से यह अच्छा है, लेकिन वास्तव में मैं propostal के रूप में सभी उपवर्गों प्राप्त करना चाहते हैं, न केवल सूचियों के लिए। – AvrDragon
@ जोनस्केट आप एक नई निर्भरता जोड़ देंगे (मेरा मतलब है कि आप इसे किसी भी तरह से जोड़ना चाहते हैं, लेकिन मान लीजिए नहीं) केवल 'नया ऐरेलिस्ट <>()' से 'Lists.newArrayList()'? –