我不知道我是否是唯一知道这一点的人,但枚举的值并不是隐含的最终值,可以修改。
enum EnumTest {
TOTO("TOTO 1"),
TATA("TATA 2"),
;
private String str;
private EnumTest(String str) {
this.str = str;
}
@Override
public String toString() {
return str;
}
}
public static void main(String[] args) {
System.out.println(EnumTest.TATA);
EnumTest.TATA.str = "newVal";
System.out.println(EnumTest.TATA);
}
TATA 2
newVal
TOTO("TOTO 1")
这些值通常在创建实例时初始化(这不是问题的重点,只是想知道我是否是唯一一个知道这一点的人。
我想知道的是是否有任何用例来创建可变枚举?
而且我还想知道我们可以用枚举做些什么的限制(好的做法与否)。我还没有测试过,但也许可以用 Spring bean 注入枚举?至少看起来我们可以注释每个实例(例如@Deprecated 可以很好地工作)以及方法。