पर ऑब्जेक्ट कास्टिंग टाइप करें हमें हाल ही में हमारे कोड में एक बग का सामना करना पड़ा जो मूल रूप से ओओपी अवधारणाओं से संबंधित था।किसी भी संग्रह प्रकार
class ABC
{
String a;
ABC(){
a = "abc";
}
}
public class Main {
static Object listABC() {
List<ABC> listOfABC = new ArrayList<>();
listOfABC.add(new ABC());
return listOfABC;
}
public static void main(String[] args) throws java.lang.Exception {
List<Long> listLong = (List) Main.listABC();
System.out.println(listLong.get(0));
}
}
आउटपुट: एबीसी @ 642c39d2
इस एक रन समय अपवाद बढ़ा नहीं करना चाहिए? क्या कोई मुझे सही दिशा में इंगित कर सकता है कि यह कोड अपवाद क्यों नहीं उठाता है?
आपकी मौजूदा सूची का प्रकार है और आप इसे लंबे समय तक –
Nimesh
पर कास्टिंग कर रहे हैं हां, यह कोई रन टाइम अपवाद – rmagon
@rmagon नहीं बढ़ाता है क्योंकि जेनिक्स संकलन के बाद चला गया है। आपको 'रनटाइम' अपवाद नहीं मिलेगा क्योंकि संकलक सही प्रकार की परवाह करता है। यदि जेनिक्स द्वारा परिभाषित एक अलग वर्ग के लिए 'रनटाइम' कुछ है, तो वहां कोई एक्सपिसन नहीं होगा क्योंकि 'सूची' का सामान्य प्रकार अब मौजूद नहीं है – SomeJavaGuy