我有这个代码:
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/