这是该语言的一个怪癖:枚举构造函数是隐式私有的。
有趣的是,如果您声明一个包可见的枚举构造函数,如下所示:
public enum MyEnum {
A(0),
B(1);
private final int i;
MyEnum(int i) {
this.i = i;
}
public int getI() {
return i;
}
}
Run Code Online (Sandbox Code Playgroud)
您不能从包中的另一个类引用它。如果您尝试,您会收到编译器错误:
无法实例化类型 MyEnum