似乎没有人解决私人方面的问题。我的猜测是您正在从包含类型访问私有字段-您的枚举 实际上 是嵌套类型,如下所示:
class Test{ static void Main() { // Entirely valid SomeEnum.VALUE1.value = "x"; } enum SomeEnum { VALUE1("value1"); private String value; private SomeEnum(final String value) { this.value = value; } }}这是完全合法和正常的-您 始终 可以从包含的类型访问嵌套类型的私有成员。
如果将枚举设置为顶级类型,则不会看到此信息。
至于更改值-
正如其他人所说的那样,
VALUE1它隐式地是静态的和最终的,但这并不能阻止您进行更改
VALUE1.value。再次重申,这完全符合Java在其他地方的工作方式-
如果您具有类型的静态字段
List,则仍可以向其添加条目,因为这不会修改 字段 本身。
如果要使其
SomeEnum正确不变,请设置
value字段
final。



