为什么我不能以这种方式声明数组然后赋值?

时间:2018-12-20 08:33:31

标签: java arrays

为什么当我尝试像这样初始化数组时会给我一个错误

package practicejava;

class Test {

    public static void main(String[] args) {

        int[] array;
        array ={};

    }
}

为什么下面的代码向我显示错误?

3 个答案:

答案 0 :(得分:1)

更改如下:

int[] array;
array = new int[]{};

您当前分配数组的方式无效。

答案 1 :(得分:0)

您必须在数组中声明数组大小,如下所示:

perl

答案 2 :(得分:0)

该数组需要在与以下代码相同的代码行中声明:-

int[] array = new int[]{...};

代码的第一行是:-

int [] array = {...}

此行是Java允许的,只是上述声明的简写形式。请注意,只有在数组的声明和初始化同时完成时才允许这样做(数组的分配在内部进行,并根据元素的数量来完成)。

线 int [] array; 只是在堆栈中创建一个引用,该引用为null,这是它不指向任何内容。

但是,当您执行array = {...}时,它不再有效,因为需要在初始化之前分配内存。 Java不内部处理此类初始化。 所以,建议初始化 array = new int [] {...} 代替。