我想知道編譯器如何讀取此代碼。爲什麼在將一個Integer變量賦值爲null的int變量賦值給一個int變量後會得到一個NPE?
public class obj {
public static void main(String[] args) {
Integer obj = null; //line4
int x = obj; //line 5
System.out.println(x); //line6
}
}
我的理解是,5號線可以做自動拆箱,這意味着它轉換Integer
類型原始int
。
但我不打電話x
上的任何方法,只是打印。爲什麼它給我一個NullPointerException
?
。 http://docs.oracle.com/javase/tutorial/java/data/autoboxing.html –
不能將'null'賦值給'int'類型的變量 –