Java空指针中的对象引用

时间:2013-06-05 00:12:41

标签: java nullpointerexception

我有一个包含双打数组的对象。

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;

我希望有人能看到我做错了什么? 谢谢:))!

2 个答案:

答案 0 :(得分:1)

执行此操作时:

numberRow = new NumberRow[dataset.numberOfVariables];

数组numberRow的所有成员都已初始化为默认值NumberRowNumberRow是一个类,因此其默认值为null。要设置null值的值,必须先将其初始化为new,真实对象,否则会出现NullPointerException。

答案 1 :(得分:1)

这是初学者开始使用对象数组时常见的错误。创建对象引用数组时,将初始化数组,但数组中的各个元素为null。因此,在numberRow[k].NumberArray[i] = misc;语句中,numberRow[k]null,导致异常。因此,在该行之前,您需要将语句

numberRow[k] = new NumberRow();

在上述陈述之前。