Có những thứ khác bạn có thể làm và lý do để sử dụng chúng, nhưng lý do chính tôi sử dụng enums là ngăn chặn khả năng tham số không hợp lệ. Ví dụ, hãy tưởng tượng phương pháp sau:
public void doSomethingWithAMonth(int monthNum);
Đây không phải là chỉ mơ hồ (? Làm chỉ số tháng bắt đầu từ 1, hoặc ở mức 0), nhưng bạn có thể cung cấp dữ liệu không hợp lệ xuống bên phải (13+, số âm) . Nếu bạn có một enum Month
với Jan, Feb, vv các chữ ký trở thành:
public void doSomethignWithAMonth(Month month);
Mã gọi phương pháp này sẽ là xa dễ đọc hơn, và không thể cung cấp dữ liệu không hợp lệ.
http://stackoverflow.com/questions/481068/when-to-use-enum-or-collection-in-java – Habib
http://stackoverflow.com/questions/2077634/enum-in-java-advantages – assylias