मेरा मानना है कि अपने सबसे अच्छे शॉट वस्तुओं की एक सूची के रूप में सूची घोषित करने के लिए है:
List<Object> anything = new ArrayList<Object>();
तो फिर तुम रख सकते हैं जो कुछ भी आप यह चाहते हैं, जैसे:
anything.add(new Employee(..))
जाहिर है, आप करेंगे उचित कास्टिंग के बिना सूची में से कुछ भी पढ़ने में सक्षम नहीं:
Employee mike = (Employee) anything.get(0);
मैं उपयोग को हतोत्साहित करता हूं जैसे कच्चे प्रकार के:
List anything = new ArrayList()
के बाद से जेनरिक का पूरा उद्देश्य ठीक है उन्हें से बचने के लिए, भविष्य जावा नहीं रह गया है कच्चे प्रकार suport सकता है में, कच्चे प्रकार माना जाता है विरासत और एक बार आप एक कच्चे प्रकार आप कर रहे हैं का उपयोग करें किसी दिए गए संदर्भ में जेनिक्स का उपयोग करने की अनुमति नहीं है।Combining Raw Types and Generic Methods
स्रोत
2012-06-17 18:03:28
सूची
यह 'सूची <ऑब्जेक्ट उदाहरण = नया ArrayList () होना चाहिए;' जब आपको 'example.get (0)' जैसी वस्तु मिलती है, तो आपको एक स्पष्ट कलाकार बनाना होगा। कौन सा वर्ग विधि MyFunction() लागू करता है? यदि 'कर्मचारी 'लागू करता है' मेरा फ़ंक्शन() 'आपको कुछ (' कर्मचारी) (example.get (0)) जैसे कुछ करना चाहिए)। MyFunction(); ', इसके साथ आप यह इंगित कर रहे हैं कि स्थिति 0 से पुनर्प्राप्त ऑब्जेक्ट हो सकता है एक कर्मचारी के रूप में संभाला। बेशक अगर यह अपवाद नहीं है तो फेंक दिया जाएगा। –
कक्षा सेब { int मूल्य; सार्वजनिक शून्य myFunction (int iPrice) { मूल्य = iPrice; } } कक्षा नारंगी { int मूल्य; सार्वजनिक शून्य myFunction (int iPrice) { मूल्य = iPrice; } } सार्वजनिक वर्ग मुख्य { public static void (String [] args) { सूची सूची = नए ArrayList <>(); // list.add (नया सेब()) सूची में 3 सेब ऑब्जेक्ट बनाएं; list.add (नया सेब()); list.add (नया नारंगी()); list.get (0)।/* "प्राप्त करें (0)।" यह ऐप्पल ऑब्जेक्ट और मेरे फ़ंक्शन का उपयोग नहीं कर रहा है */ } } –
mypolat