[英]Why the enum constants must be declared before any other variables and methods declaration in an enum type?
如果我在以这种方式声明枚举常量之前或之前声明变量:
enum MyEnum
{
int i = 90;
}
它显示以下编译错误。
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
但是如果我在声明i
之前宣布一个枚举常量,那么它编译得很好。
即使以下代码将编译正常:
enum MyEnum
{
;//put a semicolon
int i = 90;
}
为什么java enum是这样设计的?
枚举的两个必要部分是:
您必须首先在枚举主体之前声明枚举标识符列表。 在这里, ;
正在展示第一部分,因为第一部分是强制性的。 如果忽略它,将产生编译错误。 如果你添加;
然后它将在您满足两个标准时进行编译。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.