为什么在这段代码中会出现空指针异常?
public class Test {
Integer i;
int j;
public static void main ( String [] args ) {
Test t = new Test ();
t.go();
}
public void go() {
j=i;
System.out.println(j);
System.out.println(i);
}
}
输出: 线程“main”中出现异常 java.lang.NullPointerException 在 Test.go(Test.java:12) 在 Test.main(Test.java:8)
public class Test {
Integer i;
int j;
public static void main ( String [] args ) {
Test t = new Test ();
t.go();
}
public void go() {
j=i;
System.out.println(j);
System.out.println(i);
}
}
Output : Exception in thread "main" java.lang.NullPointerException
at Test.go(Test.java:12)
at Test.main(Test.java:8)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
显然不是这个错误。您将收到运行时 NullPointerException,因为您将空引用 (
i
) 拆箱为基元 (j
)。请参阅 JLS §5.1.8。i
为 null 的原因是实例字段默认初始化为 0、null 或 false。That's obviously not the error. You will get a runtime NullPointerException because you're unboxing a null reference (
i
) into a primitive (j
). See JLS §5.1.8.The reason
i
is null is that instance fields are initialized to 0, null, or false by default.