如果我们知道如何使用枚举以及何时使用枚举,那么枚举是非常强大的
案例 1:
当你有字符串常量值并且你正在比较它们时。
枚举如何帮助:
所有字符串的 Crate 枚举和比较字符串比较 emum 的插入。由于枚举是根据它们的哈希值进行比较,这是一个数字,所以它比字符串比较快。
如Oracle documentation 所示,他们使用星期日、星期一作为枚举而不是字符串。
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
}
案例 2:当您必须使用常量并且您必须比较常量时,因为其他常量的值是基于结果的。
例如。您有月份名称,根据月份名称,您可以获得有多少天,在这种情况下,枚举类型对您有很大帮助。
例如。
enum MonthEnum {
JAN("Jan", 31, "Sunday"), Feb("Feb", 28, "Tuesday"), March("March", 28, "Monday");
private final String monthName;
private final int noOfDays;
private final String startDay;
private MonthEnum(final String monthName, final int noOfDays, final String startDay) {
this.monthName = monthName;
this.noOfDays = noOfDays;
this.startDay = startDay;
}
public String getMonthName() {
return monthName;
}
public int getNoOfDays() {
return noOfDays;
}
public String getStartDay() {
return startDay;
}
}
您可以通过仅传递月份名称轻松获取枚举
public static MonthEnum getMonthEnum(final String monthName) {
MonthEnum month = null;
for(MonthEnum monthEnum : MonthEnum.values()) {
if(monthEnum.getMonthName().equalsIgnoreCase(monthName)) {
month = monthEnum;
}
}
return month;
}