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

8

在C语言中,数组初始化列表中使用逗号,作为分隔符,可以结束列表。这一点在Kernighan和Ritchie的《C程序设计语言第二版》中有提到。

例如:

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

当列表很长时,这是非常方便的,而且在添加项目时不需要更改/检查上一行。

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

然而,在Java中我观察到了两种不同的行为:
在Eclipse中,结尾的,被接受,而某些版本的maven编译插件会抱怨并抛出编译错误。

然而,在Flanagan's Java书中没有提到这个特殊情况。

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


1
你在使用Maven时是否遇到过编译错误?如果是,你使用的是哪个编译器? - Richard Fearn
你可以按照这里提到的方式在Java中初始化列表 https://dev59.com/SnRA5IYBdhLWcg3wsgPq#71661809 - fatimasajjad
3个回答

15
规范的第10.6节明确说明允许使用尾随逗号(并忽略它):

在数组初始化器中,最后一个表达式之后可以出现一个尾随逗号,并且会被忽略。

链接


4

来自Java语言规范第10.6节

数组初始化器中最后一个表达式后面可以有一个逗号,并且会被忽略。


2

这是实际的JDK错误报告:http://bugs.java.com/view_bug.do?bug_id=6337964(在Java 7的生命周期内已经修复,并向6回溯)。 - seanf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接