所以我有一个对象数组,我试图访问嵌套类中的变量。我得到一个空指针异常。新手在这里,所以我解决这个问题的方式可能是错误的。
foo Foo = new foo();
Foo.initcfoo(1);
Foo.cfoo[0].a = 1;
public class foo {
childfoo[] cfoo;
public void initcfoo(size){
cfoo = new childfoo [size];
}
public class childfoo{
public int a,b,c;
}
}
最佳答案
您已初始化数组,但尚未初始化其成员。改成
public void initcfoo(size){
cfoo = new childfoo [size];
for (int i = 0; i < cfoo.length; i++) {
cfoo[i] = new childfoo();
}
}
考虑使用Java命名约定。类名以大写字母开头。将
camelCase
用作变量和方法名称。如果您不这样做,则声明
Foo.cfoo[0].a = 1;
正在尝试访问索引为0的元素,但该元素尚未初始化,因此为
null
。试图取消引用null
以便访问字段a
会引发NullPointerException
。关于java - 如何使用数组对象访问嵌套类中的变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18666910/