आप निम्न कोड चलाते हैं,एक अशक्त बॉक्स्ड वस्तु अनबॉक्सिंग फेंकता अप्रत्याशित NullPointerException
public class Foo{
public static void main(String[] args){
int id = new Bar().getId(); // throws unexpected NullPointerException
}
private static class Bar{
private final Integer id;
public Bar(){
this(null);
}
public Bar(Integer id){
this.id = id;
}
public Integer getId(){
return id;
}
}
}
,
Exception in thread "main" java.lang.NullPointerException
at Foo.main(Foo.java:3)
कैसे आ वहाँ कोई संकलक चेतावनी या कुछ भी है आप निम्नलिखित स्टैकट्रेस मिलेगा? IMHO यह अनबॉक्सिंग के साथ एक बहुत ही बुरा subtlety है, या शायद मैं सिर्फ मूर्ख हूँ।
@Javier द्वारा प्रदान की जवाब देने के लिए पर जोड़ने, यदि आप ग्रहण का उपयोग कर रहे हैं, तो आप सक्षम करने के लिए इस निम्नलिखित कार्य करने होंगे:
- नेविगेट विंडो को>पसंद>जावा>कंपाइलर>त्रुटियां/चेतावनियां
- विस्तृत संभावित प्रोग्रामिंग समस्याओं
- टॉगल मुक्केबाजी और unboxing रूपांतरण या तो "चेतावनी" के लिए, या "त्रुटि"
- नल "ठीक है"
मुझे समझ में नहीं आता है। क्या आप पूछ रहे हैं कि एनपीई क्यों होता है या यह सिर्फ एक राग है? विशिष्ट उत्तरदायी सवाल क्या होगा? – madth3