autoboxing क्यों इस फेंक NullPointerException
Booleans, सशर्त ऑपरेटरों और
public static void main(String[] args) throws Exception {
Boolean b = true ? returnsNull() : false; // NPE on this line.
System.out.println(b);
}
public static Boolean returnsNull() {
return null;
}
जबकि इस
public static void main(String[] args) throws Exception {
Boolean b = true ? null : false;
System.out.println(b); // null
}
नहीं करता है?
समाधान Boolean.FALSE
द्वारा false
को बदलने के लिए boolean
--which संभव नहीं है करने के लिए जा रहा है अनबॉक्स्ड null
से बचने के लिए जिस तरह से है। लेकिन यह सवाल नहीं है। प्रश्न है क्यों? क्या जेएलएस में कोई संदर्भ है जो इस व्यवहार की पुष्टि करता है, खासकर दूसरे मामले में?
वाह, ऑटोबॉक्सिंग एक अंतहीन स्रोत है ... er ... जावा प्रोग्रामर के लिए आश्चर्य, है ना? :-) – leonbloy
मुझे एक ही समस्या थी और मुझे क्या आश्चर्य हुआ कि यह ओपनजेडीके वीएम पर असफल रहा लेकिन हॉटस्पॉट वीएम पर काम किया ... एक बार लिखें, कहीं भी चलाएं! – kodu