読者です 読者をやめる 読者になる 読者になる

kagamihogeの日記

kagamihogeの日記です。

オートボクシングで NullPointerException

Java 界隈では比較的良く知られていると思われるオートボクシングの罠。そして見事にハマッたので記録を残しておく。

再現させるソースコードは下記の通り。

    public static final int HOGE=1;
    public static void main(String[] args) {
        Integer v = null;
        if (HOGE == v) {
            System.out.println("hoge");
        }
        
    }

if (HOGE == v) { の行で NullPointerException が発生する。v が null なんでそりゃそっすよね、って話なわけですが、コードだけ見てると意外と気付けないのがツライ。

でまぁ、ぐぐってみるとオートボクシングの落とし穴は NullPointerException だけではなく、比較するときとかにもごにょごにょとあるらしく。参考:Java 5 のオートボクシング・アンボクシングの落とし穴 - 集中力なら売り切れたよ