java - 变量启动中的 NullPointerException

标签 java nullpointerexception

我有这个代码:

public class loops {

    public static void main(String[] args) {
        person[] people = new person[5];
        int i = 0;
//        for (person p : people) {
//            p.age = i++;
//        }
        for (int j = 0; j < people.length; j++) {
            people[i].age = i++;
        }

        for (person p : people) {
            System.out.print(p.age);
        }
    }
}

class person {

    public int age;
}

我尝试了两个循环,但结果永远是空指针异常。

为什么?

异常(exception)行是这些:

            people[i].age = i++;

            p.age = i++;

最佳答案

你刚刚创建了一个 person 数组,你还没有实例化任何项目,它们都指向 null ,你需要做:

people[i] = new person();

在你的循环中。

所以你的循环将是:

for (int j = 0; j < people.length; j++) {
            people[i] = new person();
            people[i].age = i++;
        }

关于java - 变量启动中的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21914050/

相关文章:

java - 列出 Java 对象的所有私有(private)字段?

java - 将 actionListener 添加到已添加到 JToolBar 的新 JButton

java 8 groupingBy,过滤字段大于平均值的记录

Java 流 : Replacing groupingBy and reducing by toMap

java - 为什么这不抛出 NullPointerException?

java - 有人可以帮我解决我的代码错误吗?

java - 如何解决 "Exception in thread "Animation Thread"java.lang.NullPointerException"?

android - 任务 ':app:minifyDebugWithR8' 执行失败。 > java.lang.NullPointerException

java - RecyclerView.onMeasure(...) 的空指针异常

java - findViewById() 可能会产生 NullPointerException