我已經創建了下面的類來明確我不明白的地方,它實際上並不會用於任何事情。從實例化的Java數組中讀取拋出NullPointerException而不是返回0
public class A
{
private int[] items;
public A()
{
int[] items = new int[7];
}
public int first()
{
return items[0];
}
}
所以,當我們創建了一個新的實例,數組「項目」將成爲與7
容量的陣列當調用第一()方法,它要求的值int變量在數組的第一個位置。由於我們沒有給這個int一個實際值,所以根據http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html,將被存儲的默認值是「0」。
然而,當我實際調用該方法,而不是返回0時,我收到一個nullpointerexception。爲什麼是這樣?
[編輯] 由於某種原因無法回覆對我自己的問題的評論... 但是,感謝您的幫助! 如果別人有類似的問題,它仍然不是很清楚出了什麼問題:
我已經聲明,但沒有初始化一個變量「項目」,可以容納一個整數數組。
現在,在構造函數中,不是初始化我的原始變量,而是剛剛聲明瞭一個新變量「items」(它只存在於構造函數中,然後消失),然後將其初始化爲7個整數的數組。
現在,當調用「第一個」方法時,它會嘗試查找我的原始「items」數組的第一個位置上的內容,因爲這是當前存在的唯一「items」數組。但我沒有初始化該數組,這意味着沒有數組,只有一個變量。因爲返回了nullpointerexception。
不,你的陰影場。 –