class Boxing2 {
static Integer x;
public static void main(String[] args) {
doStuff(x);
}
static void doStuff(int z) {
int z2 = 5;
System.out.println(z2 + z);
}
}
此代码可以正常编译,但是JVM抛出NullPointerException
线程“ main”中的异常java.lang.NullPointerException在 Boxing2.main(Test.java:4)
我不知道原因。
答案 0 :(得分:3)
x
字段为null
,因此null
被传递给doStuff
方法的x
参数,
因此将null
自动装箱为int
类型会抛出NullPointerException
。
Integer
默认为null
,而int
默认为0
。