java注释列表是否允许在最后一个条目后加一个逗号?

java注释列表是否允许在最后一个条目后加一个逗号?,java,annotations,Java,Annotations,我不小心在一个注释列表的末尾留下了一个额外的逗号,但它在我的机器上编译得很好。例如: @命名查询({ @NamedQuery(name=“name1”,query=“FROM Foo”), @NamedQuery(name=“name2”,query=“FROM Bar”), }) 请注意第二个@NamedQuery后面的额外逗号。它在我的机器上似乎编译得很好,但是其他人在他们的机器上编译代码时遇到了问题,所以我删除了它。但我现在很好奇它是否应该被允许,如果是的话,什么版本的java允许它

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


@命名查询({
@NamedQuery(name=“name1”,query=“FROM Foo”),
@NamedQuery(name=“name2”,query=“FROM Bar”),
})

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


我在网上的任何地方都找不到这方面的任何参考资料。

我认为在这种情况下,您正在处理允许使用额外逗号的问题

例如:

int[] foo = new int[] { 1, 2, 3, };

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

请注意,这在某些注释处理上下文中有效,而在其他上下文中无效。如果您正在使用Sun的命令行APT,它将导致严重错误。(不过,它在eclipse中工作正常)

>数组初始值设定项中的最后一个表达式后面可能会出现一个尾随逗号,因此会被忽略。(+1)Java语言规范明确允许在注释数组()中使用尾随逗号。然而,javac中似乎有一个bug抛出了一个错误(“表达式的非法启动”)。因此,为了安全起见,您不应该在注释中使用尾随逗号,而在数组初始值设定项中它们是可以使用的。