我正在阅读Joshua Bloch在2008年发表的有效Java,其中一个技巧是用类替换枚举结构.这是本书中显示的示例.
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");
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,由于Java现在支持枚举类型,使用上述方法仍然是个好主意吗?这是Java枚举类型的示例.
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
}
Run Code Online (Sandbox Code Playgroud)
das*_*ght 11
"有效Java"一书在将enums引入语言之前已经写好了,所以我建议使用该enum功能.幸运的是,Java enum是非常通用的,因此您可以使用该enum功能非常密切地遵循Joshua的建议:
public enum Day {
SUNDAY("Sunday", 0)
, MONDAY("Monday", 1)
, TUESDAY("Tuesday", 2)
, WEDNESDAY("Wednesday", 3)
, THURSDAY("Thursday", 4)
, FRIDAY("Friday", 5)
, SATURDAY("Saturday", 6);
private String name;
private int ordinal;
public String getName() { return name; }
public int getOrdinal() { return ordinal; }
public Day(String name, int ordinal) {
this.name = name;
this.ordinal = ordinal;
}
}
Run Code Online (Sandbox Code Playgroud)