我的代码:
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;
}
}
出现错误信息:
主线程异常:“main”java.lang.NullPointerException。
为了更好地解释这个问题,我把它简单化:
public class Test {
private static int[] foo;
public static void main(String args[]) {
foo = new int[1];
foo[0] = 0;
}
}
看起来它应该可以工作。我只是看不到我两个例子之间的区别。(我知道我的第一个是无意义的,但MyClass最终会包含更多数据。)
我很确定问题已经在这里被问过,并得到了很好的解答。我认为我已经实现了这个解决方案:
MyClass[] foo = new MyClass[10];
foo[0] = new MyClass();
foo[0].bar = 0;
但是上面的第二行会出现错误
Test类型的封闭实例不可访问。
我知道ArrayList可能是一种前进的方式,但我正在努力理解其基本概念。
NB-可能有用的是,虽然我对编程非常熟悉,但Java是我第一次涉足面向对象编程。