generics - Java: Casting from List<B> to List<A> when B implements A? -


मेरे पास निम्न वर्ग हैं & amp; इंटरफ़ेस परिभाषित:

  सार्वजनिक इंटरफ़ेस ए {} सार्वजनिक वर्ग बी का कार्यान्वयन A {}  

मेरे पास सूची बी ऑब्जेक्ट्स जिन्हें मुझे सूची का A ऑब्जेक्ट्स:

  सूची & lt; B & gt; ListB = नई सूची & lt; B & gt; (); ListB.add (नया बी ()); // डमी डेटा सूची B.add (नया बी ()); // डमी डेटा सूची B.add (नया बी ()); // डमी डेटा सूची & lt; A & gt; ListA = (सूची & lt; ए & gt;) सूची B;  

परिणाम ऊपर की अंतिम पंक्ति संकलन त्रुटि में "सूची से सूची नहीं लाया जा सकता है & lt; B & gt; सूची & lt; A & gt;" इसके बजाय मैं इसके आसपास इस के साथ काम करने का प्रयास किया:

  सूची & lt; A & gt; ListA = arrays.asList ((ए []) listB.toArray ());  

दुर्भाग्यवश, यह एक क्लास क्लास्ट एक्सपॉशन फेंकता है। क्या किसी को पता है कि मैं इसे कैसे हल कर सकता हूं?

एक नया बनाएं:

<पूर्व> सूची & lt; A & gt; सूची ए = नया अर्रेलिस्ट & lt; ए & gt; (listB);

निर्माता को संग्रह ले & लेफ्टिनेंट ;? ए & gt; फैली हुई है यह वही संदर्भों को वैसे भी संदर्भित करेगा।


Comments