我的代码为
public class BooleanTest {
public BooleanTest() {
super();
}
public static void main(String args[]){
BooleanTest bt = new BooleanTest();
bt.doProcess();
}
private boolean method() {
return false;
}
private void doProcess() {
Boolean obj = (Boolean)method();
System.out.println(obj.booleanValue());
}
}
问题是可以在任何情况下System.out.println(obj.booleanValue());
抛出NullPointerException
吗?
答案 0 :(得分:12)
不,当您将原始值打包到其等效的包装器类型中时,结果永远不会为空。
答案 1 :(得分:8)
答案 2 :(得分:3)
它永远不会抛出NPE,如果你使用java> = 1.5,你也不需要抛出它。它被称为autoboxing,它是从JDK 1.5引入的。
答案 3 :(得分:2)
只是为了迂腐,你可能已经将System.out设置为null,然后该行将生成一个NPE。
但这很奇怪。