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

标签 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;
        }
    }
}

运行时,应打印整数“值”的值,在本例中为数组第一个位置的对象。

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

最佳答案

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

所以将其更改为普通的 for 循环。

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

关于java - 返回数组的一个索引的方法会抛出 NullPointer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23299850/

相关文章:

java - 处理 JSON 更改信息的最佳方式

java - Spring JUnit 未从 XML 加载整个 applicationContext

java - java如何获取文件上传时本地磁盘文件路径?如果它是基于表单的 Web 应用程序...?

arrays - 嵌套 for 循环在 MATLAB 中非常慢(预分配)

Hadoop:重定向到作业历史记录服务器时出现 NullPointerException

java - Java如何判断Hashmap key的唯一性?

javascript - ng-repeat 使用数组和对象

javascript - 为什么数组会互相模仿并 self 重置?

java - validate.xml 之后的 validate() 方法

java - 枚举静态方法抛出空指针异常