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
Exception in thread "main" java.lang.NullPointerException at Boxing2.main(Test.java:4)
我无法找出其中的原因。
最佳答案
x
字段为 null
,因此 null
被传递给 doStuff
方法的 x
> 参数,
因此,将 null
自动装箱为 int
类型会抛出 NullPointerException
。
Integer
默认为 null
,而 int
默认为 0
。
关于java - 代码编译正常,但 JVM 抛出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51442623/