Boolean.valueOfにBoolean型のnullを渡すとNPE
Boolean.valueOf(null); // false
Boolean hoge = null;
Boolean.valueOf(hoge); // NullPointerException
理由
答えは簡単で、hoge
はBoolean型だが、これを引数にとるvalueOf
は存在しない。
valueOf
のメソッドシグネチャは、
- valueOf(String)
- valueOf(boolean)
である。
Boolean型を渡すと、対応する型が無いため、booleanへオートボクシングを試みる。
booleanはプリミティブ型であるため、NullだとNPEが発生する。