java中的奇怪声明

时间:2012-11-05 20:05:39

标签: java arrays multidimensional-array declaration

  

可能重复:
  Arrays with trailing commas inside an array initializer in Java

为什么以下语句在java中是正确的:

int[][] a = { {1,2,}, {3,4}};

是否因为不必要的逗号而导致编译错误?

5 个答案:

答案 0 :(得分:5)

数组初始化中的

Trailing commaignored by compiler。通常会添加这些内容,以便稍后在向数组中添加内容时,只需添加元素而不必担心逗号。

很奇怪,但是被允许。

这也列在JLS - Section#10.6 (Array Initializers)中: -

  

数组初始值设定项以逗号分隔的列表形式写入   用括号{和}括起来的表达式。

     

尾随逗号可能出现在数组中的最后一个表达式之后   初始化并被忽略。

答案 1 :(得分:4)

{1,2,}

最后一个逗号后面不必有元素。几种编程语言就是这种情况(JavaScript( by standards; IE并不总是符合),PHP,Java,Python,C#3.5等等,我敢肯定。

答案 2 :(得分:2)

这个问题最有可能是关于二维数组的第一个数组元素中的尾随逗号:{1,2,}。根据{{​​3}}:

,这是有效的java语法
  

尾随逗号可能出现在数组初始值设定项中的最后一个表达式之后,将被忽略。

答案 3 :(得分:1)

没有。这是一个多维数组。对于标准数组,你有

int a[] = {1, 2, 3};

但这是多方面的。也许这会有所帮助:

int a[][] = {
                {1, 2},
                {3, 4}
            }

所以现在a[0] = {1, 2}a[1] = {3, 4}

如果你指的是{1, 2,}中的最后一个逗号,那在Java中就可以了。

答案 4 :(得分:0)

它是一个嵌套数组 - 为什么会出现编译错误?