Unknown Region

プログラムでハマったエラーとその解決方法についての備忘録メモ

【Java】Auto-UnboxingでのNullPointerExceptionにご注意を

Nullに対してAuto-Unboxingが働くと、NullPointerExceptionが発生する。

なのでラッパークラスとプリミティブで比較を行う場合は、思いがけない場所で落とし穴にハマってしまう。

例:Demo1.java

public class Demo1 {
  public static void main(String[] args) {
    long hoge = 128L;
    Long fuga = null;
    System.out.println(hoge == fuga); // NulPointerExceptionが発生する
  }
}

少しでもnullが入る可能性があるのであれば、しっかりと比較する前にNullのチェックをすれば良い。

例:Demo2.java

public class Demo2 {
  public static void main(String[] args) {
    long hoge = 128L;
    Long fuga = null;
    System.out.println(fuga != null && hoge == fuga); // falseが出力される
  }
}

 

連絡先: plugout777★yahoo.co.jp (クローラー対策のため★を@に変更してください)