java - Java中数组初始值设定项中带有尾随逗号的数组

标签 java arrays multidimensional-array

数组初始化器可用于在编译时初始化数组。如下所示的带有尾随逗号的初始化程序可以正常编译。

int a[][] = {{1,2,} ,{3,4,} , {5,6,},}; //Trailing commas cause no compiler error

for(int i=0;i<a.length;i++)
{
    for(int j=0;j<2;j++)
    {
        System.out.print(a[i][j]+"\t");
    }
    System.out.println();
}

输出:

1        2        
3        4        
5        6     

与上面的讨论一样,一维数组也是合法的。

int[] b = {1, 2, 3, 4, 5, 6,}; //A trailing comma causes no compiler error

for(int i=0;i<b.length;i++)
{
    System.out.print(b[i]+"\t");
}

输出:

1        2        3        4        5        6

即使以下是合法的语法,也可以正常编译。

int c[][] = {{,} ,{,} , {,},}; 

编译器应该期望在逗号 , 之后和之前有一个常量值(或另一个初始化器)。这是如何编译的?编译器是否只是忽略了这样的逗号或在这种情况下发生了其他事情?

最佳答案

后面的逗号被忽略。来自 Java specification :

A trailing comma may appear after the last expression in an array initializer and is ignored.

关于java - Java中数组初始值设定项中带有尾随逗号的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11621917/

相关文章:

java - 在 Java Derby 中创建包含值的表

c++ - 多维数组初始化: Any benefit from Threading?

c# - 关于C#中数组下标的问题

java - Amazon SQS setRegion 方法

java - 如何将文件移动到非空目录?

java - Java 运行时异常和算术异常

java - 在嵌套类中实现的比较器接口(interface)

javascript - 下面的 JavaScript 语法是如何工作的?数组['push']('5')

c# - 如何在 C# 中从二维矩形字符数组的一行创建字符串?

java - 在Java中用n个空的一维列表初始化多维列表