为什么Java会阻止声明类型为int [] a,[] b的数组?

时间:2017-01-21 09:42:31

标签: java

为什么不允许声明具有2个标识符的数组,如下面提到的语法: -

int []a,[]b;
java中的

我知道它会抛出编译时错误,但是我需要知道为什么用上面的语法来声明数组?

4 个答案:

答案 0 :(得分:2)

int []a,[]b;无效,因为[]的类型名称应为int[]。在int[]之后声明的变量将是int类型的数组。

你可以做

int []a,b;

int []a;
int []b;

答案 1 :(得分:1)

你可以这样试试:

int[] a, b;

int[]表示以下变量是int的数组。

int表示以下变量将是整数。

所以:

int[] a, b;

表示a和b将是int的数组。 但是:

int a[], b;

表示a将是一个int数组,b将只是一个int。

int []a;运行正常。 int []a, b;是非法的

尝试将这些括号放在类型或变量名后面。

答案 2 :(得分:0)

查看array syntax

int[][] a = new int[1][2];

你也可以这样初始化它:

int[][] a = new int[2][2]{
{1,2} // first row
{3,4}, // second row
};

答案 3 :(得分:0)

在java中声明数组时,JVM会为声明的数组创建一个类。例如,int[] sampleArray;将有一个类int[].class,因此sampleArray的类型将为int[].class

为什么要阻止使用上面的语法声明数组?

int []是一个与int不同的类型。因此,写int[] a,b;int a[],b[]

更合适

参考This SO