如果我在以这种方式声明枚举常量之前或之前声明变量:
enum MyEnum
{
int i = 90;
}
Run Code Online (Sandbox Code Playgroud)
它显示以下编译错误.
MyEnum.java:3: <identifier> expected
{
^
MyEnum.java:4: ',', '}', or ';' expected
int i = 90;
^
MyEnum.java:4: '}' expected
int i = 90;
^
MyEnum.java:5: class, interface, or enum expected
}
^
4 errors
Run Code Online (Sandbox Code Playgroud)
但是如果我在声明之前宣布一个枚举常量,i那么它编译得很好.
即使以下代码将编译正常:
enum MyEnum
{
;//put a semicolon
int i = 90;
}
Run Code Online (Sandbox Code Playgroud)
为什么java enum是这样设计的?