1
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);
    }
}

输出: Test.go(Test.java:12) at Test.main(Test.java:8) 的线程“main”java.lang.NullPointerException 中的异常

4

1 回答 1

3

这显然不是错误。您将获得运行时 NullPointerException,因为您将空引用 ( i) 拆箱为原始 ( j)。参见 JLS §5.1.8

原因i是 null 是实例字段默认初始化为 0、null 或 false。

于 2010-10-08T04:36:33.237 回答