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が出力される } }