なぜこれがスローされるのですか NullPointerException
public static void main(String[] args) throws Exception {
Boolean b = true ? returnsNull() : false; // NPE on this line.
System.out.println(b);
}
public static Boolean returnsNull() {
return null;
}
これはしませんが
public static void main(String[] args) throws Exception {
Boolean b = true ? null : false;
System.out.println(b); // null
}
?
解決策は、ボックス化false
さBoolean.FALSE
れないようnull
にするためにで置き換える方法です- boolean
これは不可能です。しかし、それは問題ではありません。問題はなぜですか?特に2番目のケースのこの動作を確認するJLSのリファレンスはありますか?