Инициализаторы массива могут использоваться для инициализации массивов во время компиляции. Инициализатор с концевыми запятыми, как показано ниже, отлично компилируется.
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[][] = {{,} ,{,} , {,},};
Компилятор должен ожидать постоянное значение (или другой инициализатор) после запятой и перед запятой ,
. Как это скомпилировано? Компилятор просто игнорирует такие запятые или что-то еще происходит в таком сценарии?