在 Java 中使用 { } 进行数组初始化

2022-09-03 13:23:50

我们可以像这样初始化一个数组:

int myArray[][] = { {10,20} ,{30,40} , {50} };

它工作正常。

但我遇到了一个特殊的情况。

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

上面的代码行编译良好。据我所知,这很奇怪。因为当编译器解析这个语句时,它会遇到和和所有。编译器不应该期望介于两者之间的常量或文字吗?如果有人能告诉我上述语句是如何解析的,以及编译器在遇到这种情况时究竟做了什么,我将不胜感激。{,}


答案 1

这只是语法允许尾随逗号的一个事实的怪癖。

例如,允许尾随逗号是代码生成器生成诸如之类的东西,例如,允许您方便地注释掉最后一行{ 0, 1, }

int[] myArray = {
    0,
//  1
};

(您可能已经知道,尾随被忽略,即 生成一个空数组。,{ , }

相关问题:


答案 2