2012-07-16 12 views
8

के साथ उदाहरण निम्नलिखित स्निपेट क्यों संकलित नहीं होगा?जेनेरिक संग्रह

if (mangoList instanceof List<Mango>) { System.out.println("true"); } 
  • आप नहीं जानते कि कि mangoList एक सूची प्रकार है।
  • उदाहरण का कीवर्ड केवल आदिम प्रकारों पर काम करता है।
  • आप केवल प्रतिबिंब का उपयोग करके संग्रह के प्रकार की जांच कर सकते हैं।
  • जेनेरिक प्रकार रनटाइम से पहले मिटा दिए जाते हैं। (उत्तर)
  • कथन आम सूची को सूची के उदाहरण पर सेट कर सकता है।

आपको क्या लगता है कि सही उत्तर है?

+0

जो _you_ सोचता है सही जवाब है? क्यूं कर? – Bernard

उत्तर

7

सही उत्तर वह है जिसे आपने ans चिह्नित किया है। आप यह बताने में सक्षम होंगे कि mangoList एक List है, लेकिन आप इसके मिटाए गए तर्क का प्रकार प्राप्त नहीं कर पाएंगे। Remaning विकल्प समझ में नहीं आता है।

+0

बढ़िया, हाँ, यही वह अनुमान है जो मैं अनुमान लगा रहा था .. त्वरित उत्तर के लिए धन्यवाद –

0

हालांकि, आप कुछ प्रकार के साथ एक सूची है या नहीं, यह जांचने के लिए आम सूची उदाहरण का उपयोग कर सकते हैं। यह उपयोगी है अगर आप सुनिश्चित नहीं हैं कि आपके पास सूची या आम वस्तु है, उदाहरण के लिए, लेकिन सूची के प्रकारों के बीच अंतर नहीं करेगा। ऐसा करने के लिए, मैं सलाह देता हूं कि आप इसके प्रकार के लिए पहला तत्व देखें।

3

1. हां "रन टाइम के दौरान जेनेरिक प्रकार मिटा दिए जाते हैं"।

2. तो आप सूची के प्रकार को बताने में सक्षम नहीं होंगे।

3. लेकिन आप यह पहचान सकेंगे कि आम सूची एक सूची है।

संबंधित मुद्दे