Java数组初始化列表以逗号结尾

数组初始化列表中使用的逗号,项分隔符可以在C中结束列表,这在Kernighan&Ritchie编写的第二版C编程语言中提到。

例如

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

当列表很长时,这很方便,并且在添加项目时不希望更改/检查上一行

  long long c[] = { 22342342344, 4324234234, 12312311111, }; 

但是在Java中我可以观察到两种不同的行为:
在Eclipse中,接受结束,而某些版本的maven编译器插件会抱怨并抛出编译错误。

但是,我没有在Flanagan的Java书中找到任何关于这种奇点的提及。

关于初始化项后结束逗号的官方规则是什么?
建议不要使用它吗?

规范的第10.6节明确指出允许(并忽略)尾随逗号:

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

链接

从Java语言规范 , 第10.6节 :

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

Sun javac有一个错误,可以在注释中解析尾随逗号。

https://bugs.eclipse.org/bugs/show_bug.cgi?id=284088