我有一个包含双打数组的对象。
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];
之后,我调用一个为numberRow赋值的函数:
double misc = in.nextDouble();
numberRow[k].NumberArray[i] = misc;
我确实说过NumberRow指向的位置。但是,eclipse在这一行给了我空指针指针异常:
numberRow[k].NumberArray[i] = misc;
我希望任何人都能看到我做错了什么?
谢谢 :)!
最佳答案
当初学者开始使用对象数组时,这是一个常见错误。创建对象引用数组时,将初始化该数组,但数组中的各个元素为null
。因此,在语句numberRow[k].NumberArray[i] = misc;
上,numberRow[k]
是null
,这导致了异常。因此,在该行之前,您需要将语句
numberRow[k] = new NumberRow();
在上述声明之前。