为什么会抛出 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是不可能的。但这不是问题。问题是为什么?JLS中是否有任何引用可以证实这种行为,尤其是第二种情况?
白板的微信
德玛西亚99
相关分类