Tôi đang đọc Java hiệu quả được viết bởi Joshua Bloch xuất bản năm 2008, và một mẹo là thay thế các cấu trúc enum bằng các lớp. Đây là ví dụ được hiển thị từ cuốn sách.Việc thay thế các cấu trúc enum với các lớp trong Java vẫn có liên quan?
public class Suit {
private final String name;
public Suit(String name) { this.name = name; }
public String toString() { return name; }
public static final Suit CLUBS = new Suit("clubs");
public static final Suit DIAMONDS = new Suit("diamonds");
public static final Suit HEARTS = new Suit("hearts");
public static final Suit SPADES = new Suit("spades");
}
Câu hỏi của tôi là vì Java hiện hỗ trợ loại enum, bạn vẫn nên sử dụng phương pháp trên? Dưới đây là ví dụ về loại enum Java.
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
}
enums trong Java là các lớp. – FDinoff
Đối với chức năng cơ bản giống như enum không có lý do gì để không sử dụng 'enum' đơn giản. Có một vài cải tiến nhỏ mà bạn không thể làm với enums, nơi mà kiểu enum kiểu an toàn vẫn có thể được áp dụng. –
Đọc ấn bản thứ hai của cuốn sách, nó thực sự đáng giá, vì nó bao gồm các tính năng Java mới. –