Nie wiem, czy tylko ja to wiem, ale wartości wyliczenia nie są domyślnie ostateczne i można je modyfikować.Java wymyśla zastosowania i możliwości zmienności?
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
Wartości te są oftenly zainicjowana podczas tworzenia instancji (TOTO("TOTO 1")
), ale oprócz mnie, nigdy nie widziałem nikogo, używając końcowego słowa kluczowego enum dla zmiennych, które powinny być niezmienne. Nie o to chodzi, tylko zastanawiam się, czy jestem tego jedyny świadomy.
Co chciałbym wiedzieć, czy był jakiś przypadek, aby utworzyć zmienne wyliczenia?
Chciałbym również poznać granice tego, co możemy zrobić z wyliczeniem (dobra praktyka lub nie). Nie testowałem tego, ale może enum może zostać wstrzyknięty fasolą Spring? Przynajmniej wydaje się, że możemy opisać każdą instancję (@Deprecated działa dobrze na przykład), a także metody.
Używanie 'final' dla pól jest powszechną praktyką w wyliczeniach. –