为什么我在这段代码中得到空指针异常?

时间:2010-10-08 04:31:26

标签: java autoboxing

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)

1 个答案:

答案 0 :(得分:3)

这显然不是错误。您将获得运行时NullPointerException,因为您将空引用(i)拆箱到基元(j)中。请参阅JLS §5.1.8

i为空的原因是默认情况下实例字段初始化为0,null或false。