Tôi không biết liệu tôi có phải là người duy nhất biết điều đó, nhưng các giá trị của một enum không hoàn toàn là cuối cùng và có thể được sửa đổi.Java enums khả năng đột biến usecases và khả năng?
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
Những giá trị này được oftenly khởi tạo vào việc tạo ra dụ (TOTO("TOTO 1")
) nhưng, ngoại trừ bản thân mình, tôi chưa bao giờ thấy bất cứ ai sử dụng từ khóa cuối cùng cho các biến enum mà nên thay đổi. Đó không phải là điểm của câu hỏi, chỉ cần tự hỏi nếu tôi là người duy nhất nhận thức được điều này.
Điều tôi muốn biết là có cách nào để tạo ra các enums có thể thay đổi không?
Và tôi cũng muốn biết giới hạn của những gì chúng ta có thể làm với enums (thực hành tốt hay không). Tôi đã không thử nghiệm nó, nhưng có lẽ một enum có thể được tiêm với đậu mùa xuân? Ít nhất có vẻ như chúng ta có thể chú thích từng cá thể (@Deprecated hoạt động tốt cho exemple), và cũng là phương pháp.
Sử dụng 'cuối cùng' cho các trường là thực tế phổ biến trong enums. –