返回数组的一个索引的方法抛出NullPointer

时间:2014-04-25 17:53:47

标签: java arrays nullpointerexception return

在处理学校的程序时,我创建了一个方法,该方法根据您给该方法的值返回数组的索引。该方法抛出NullPointerException但在数组的每个索引中都已实例化。为了表明这一点,我创建了一个测试程序,它做了同样的事情。

public class Test {
private static Number[] numbers = new Number[16];

public static void main(String[] args) {
    new Test();
}

public Test() {
    for (Number n : numbers) {
        n = new Number(0);
    }
    System.out.println(get(0).value);
}

public Number get(int index) {
    return numbers[index];
}

class Number {
    public int value;

    public Number(int value) {
        this.value = value;
        }
    }
}

运行时,应该打印整数"值"的值,在这种情况下,对象位于数组的第一个位置。

我确信这有一个简单的解释,但我不知道这个问题。

1 个答案:

答案 0 :(得分:4)

您必须使用for-each循环进行只读传递。目前,在构造函数中,数组中的元素仍然未初始化,因此也是错误。

因此将其更改为正常的循环。

for(int i = 0; i < numbers.length; i++){
    numbers[i] = new Number(0);
}