我正在尝试创建一个由子类定义的对象数组(我认为这是正确的术语).我可以看到问题是反复出现,但实施仍然存在问题.
我的代码
public class Test {
private class MyClass {
int bar = -1;
}
private static MyClass[] foo;
public static void main(String args[]) {
foo = new MyClass[1];
foo[0].bar = 0;
}
}
Run Code Online (Sandbox Code Playgroud)
给出错误
线程"main"java.lang.NullPointerException中的异常.
为了使其合理化,我将其分解为最简单的术语:
public class Test {
private static int[] foo;
public static void main(String args[]) {
foo = new int[1];
foo[0] = 0;
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎工作.我只是看不出我的两个例子之间的区别.(我知道我的第一个没有意义,但MyClass最终将包含更多数据.)
我很确定这里会问这个问题并得到很好的回答.我想我实施了解决方案:
MyClass[] foo = new MyClass[10];
foo[0] = new MyClass();
foo[0].bar = 0;
Run Code Online (Sandbox Code Playgroud)
但上面的第二行发出错误
不能访问类型为Test的封闭实例.
我确实理解ArrayList是一种前进的方式,但我正在努力掌握底层的概念.
注意 …