Java – 通过Class中的方法更改数组的值

这是我的代码:

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;
上一篇:java – 何时为构造函数抛出异常


下一篇:java – 在类中访问数组时出现NullPointerException