[英]Object referencing in Java null pointer
我有一個包含雙打數組的對象。
public class NumberRow {
static final int MAX_AMOUNT_OF_NUMBERS = 2500;
double[] NumberArray = new double[MAX_AMOUNT_OF_NUMBERS];
NumberRow(double[] NumberArray){
this.NumberArray = NumberArray;
}
}
在我的主程序中,我首先像這樣在構造函數中創建對象NumberRow的數組
NumberRow[] numberRow;
稍后在程序中,我將以下代碼放入:
numberRow = new NumberRow[dataset.numberOfVariables];
之后,我調用一個為valueRow賦值的函數:
double misc = in.nextDouble();
numberRow[k].NumberArray[i] = misc;
我確實說過NumberRow指向的位置。 但是,eclipse在此行上給了我空指針指針異常:
numberRow[k].NumberArray[i] = misc;
我希望任何人都能看到我做錯了什么? 謝謝 :)!
執行此操作時:
numberRow = new NumberRow[dataset.numberOfVariables];
陣列的所有成員的numberRow
被初始化為默認值NumberRow
。 NumberRow
是一個類,因此其默認值為null。 要為空值設置值,必須首先將其初始化為new
真實對象,否則將獲得NullPointerException。
當初學者開始使用對象數組時,這是一個常見錯誤。 創建對象引用數組時,將初始化該數組,但是數組中的各個元素為null
。 因此,在語句numberRow[k].NumberArray[i] = misc;
, numberRow[k]
為null
,這導致異常。 因此,在此行之前,您需要將語句
numberRow[k] = new NumberRow();
在上述聲明之前。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.