2010-10-08 59 views
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); 
    } 
} 

輸出:異常線程 「main」 顯示java.lang.NullPointerException 在Test.go(Test.java:12) 在Test.main(Test.java:8)爲什麼我在這段代碼中得到空指針異常?

+2

適用於我...你可以粘貼錯誤_verbatim_? – 2010-10-08 04:33:31

回答

3

這顯然不是錯誤。您將獲得運行時NullPointerException,因爲您將空引用(i)拆箱到原語(j)中。參見JLS §5.1.8

i爲空的原因是默認情況下,實例字段被初始化爲0,null或false。

+0

正確的發現。 +1。但是,我不知道,錯誤'去解決不了,或者不是一個領域'。它應該是NPE。 – 2010-10-08 04:38:23

相關問題