次のコードを実行した場合、ヌル箱入りオブジェクトをアンボクシングスロー予期しない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それはunboxingとかなり厄介な微妙な、または多分私はちょうどナイーブだ。 @Javierが提供する答えにに追加
Eclipseを使用している場合、あなたはこの有効にするには、次の実行する必要があります。ウィンドウに
- 移動し>設定>をJava>コンパイラ>エラー/警告
- は、私はあなたが使用しているIDE知らない「警告」のどちらかに潜在的なプログラミングの問題
- トグルボクシングとアンボクシング変換を展開、または「エラー」
- をタップし、「OK」
わかりません。なぜNPEが起こるのか、これはちょうど暴言なのか尋ねていますか?具体的な答えるべき質問は何でしょうか? – madth3