为什么逗号(,)不会导致编译错误?

2022-09-02 05:14:36

我正在编写一个代码,突然看到“,”不会导致任何编译错误。为什么?

我的意思

public enum A {
    B, C, ; // no compilation error
}

int a, b, ; // compilation error

答案 1

http://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.9

枚举体具有以下规范:

{ [EnumConstantList] [,] [EnumBodyDeclarations] } 

如您所见,EnumConstantList后面可以有一个可选的逗号,这只是一种符号上的便利。


答案 2

该语言是这样设计的,以便于添加和重新排序元素 - 特别是如果每个元素都单独在一行上。

与声明变量的比较不是一个好的比较,但数组允许以相同的方式获得更多值:

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

基本上,向源代码中定义的集合添加额外的值比希望将变量添加到声明语句中更常见。


推荐