Java枚举可变性用例和可能性?
我不知道我是否是唯一一个知道这一点的人,但是枚举的值不是隐式的最终值,可以修改。
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
这些值通常在创建实例时初始化(),但是,除了我自己之外,我从未见过任何人使用enum变量的最终关键字,这些关键字应该是不可变的。这不是问题的重点,只是想知道我是否是唯一一个意识到这一点的人。TOTO("TOTO 1")
我想知道的是,是否有任何用例可以创建可变枚举?
我还想知道我们可以用枚举做什么的局限性(好的做法与否)。我还没有测试过,但也许可以用春豆注入一个枚举?至少看起来我们可以注释每个实例(@Deprecated对于example来说工作得很好),以及方法。