愚蠢的问题,但为什么下面这行编译?
int[] i = new int[] {1,};
如你所见,我没有进入第二个元素,在那里留下一个逗号.即使你希望它不会,仍然编译.
解决方法
我想是因为ECMA 334标准说:
array-initializer: { variable-initializer-list(opt) } { variable-initializer-list,} variable-initializer-list: variable-initializer variable-initializer-list,variable-initializer variable-initializer: expression array-initializer
如您所见,可以使用逗号:
{ variable-initializer-list,} ↑
附:为了一个很好的答案(即使这个事实已经被许多用户指出).