这是我的代码:
class Myclass {
private static int[] array;
public static void main(String[] args) {
Myclass m = new Myclass();
for (int i = 0; i < 10; i++) {
m.array[i] = i;
System.out.println(m.array[i]);
}
}
public Myclass() {
int[] array = new int[10];
}
}
尝试执行此操作时,它会抛出java.lang.nullPointerException:
m.array[i] = i;
有人能帮帮我吗?
解决方法:
您已在构造函数中声明了一个局部变量数组,因此您实际上并未初始化Myclass中声明的数组.
您将要在构造函数中直接引用数组.代替
int[] array = new int[10];
用这个
array = new int[10];
另外,您已在Myclass类的范围内声明了数组static.
private static int[] array;
你在这里只有一个Myclass实例,所以没关系,但通常这不是静态的,如果你在构造函数中初始化它.你应该删除静态:
private int[] array;