java注释列表是否应该在最后一个条目后允许额外的逗号?

Hap*_*eer 7 java annotations

我不小心在我的一个注释列表的末尾留下了一个额外的逗号,但它在我的机器上编译得很好.例如:

@NamedQueries({ @NamedQuery(name="name1",query="FROM Foo"), @NamedQuery(name="name2",query="FROM Bar"), })

注意第二个@NamedQuery之后的额外逗号.它似乎在我的机器上正常编译,但是其他人在他们的机器上编译代码时遇到了问题,所以我删除了它.但我现在很好奇它是否应该被允许,如果允许的话,什么版本的java允许它.

我无法在网上任何地方找到任何参考.

Jos*_*ger 6

我想在这种情况下你正在处理允许额外逗号的Array Initializers.

例:

int[] foo = new int[] { 1, 2, 3, };
Run Code Online (Sandbox Code Playgroud)

这从一开始就是JLS的一部分.

  • Java语言规范明确允许在注释数组中使用尾随逗号(http://java.sun.com/docs/books/jls/third_edition/html/interfaces.html#9.7).但是,javac中似乎有一个错误会抛出错误("非法启动表达式").所以为了安全起见,你不应该在注释中使用尾随逗号,而它们在数组初始化器中是相当不错的. (2认同)