为什么逗号(,)不会导致编译错误?
我正在写一段代码,突然发现“,”不会导致任何编译错误。为什么?
我的意思是
public enum A {
B, C, ; // no compilation error
}
但是
int a, b, ; // compilation error
你可以在下面搜索框中键入要查询的问题!
我正在写一段代码,突然发现“,”不会导致任何编译错误。为什么?
我的意思是
public enum A {
B, C, ; // no compilation error
}
但是
int a, b, ; // compilation error
# 1 楼答案
这种语言就是这样设计的,这样就可以很容易地添加和重新排序元素——特别是当每个元素都在一行上时
与声明变量的比较不是一个好的比较,但是数组以同样的方式允许更多的值:
基本上,向源代码中定义的集合添加额外值比向声明语句添加变量更常见
# 2 楼答案
其主要优点是,它使多行列表更易于编辑,并减少了差异中的混乱
更改:
致:
仅涉及差异中的一行更改:
这胜过了省略尾随逗号时更容易混淆的多行差异:
后一种差异使我们更难看到只添加了一行,而另一行没有更改内容
根据雷蒙德的回答:https://stackoverflow.com/a/11597911/5111897
# 3 楼答案
http://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.9
Enumbody具有以下规范:
正如您所看到的,EnumConstantList后面可以有一个可选的逗号,这只是一个方便的符号