1、使用场景
每当需要一组固定的常量的时候,如一周的天数、一年四季等。或者是在我们编译前就知道其包含的所有值的集合。Java 1.5的枚举能满足绝大部分程序员的要求的,它的简明,易用的特点是很突出的。
2、样例:
public enum MonthMapperEnum {
JANUARY("01","Jan"),
FEBRUARY("02","Feb"),
MARCH("03","Mar"),
APRIL("04","Apr"),
MAY("05","May"),
JUNE("06","Jun"),
JULY("07","Jul"),
AUGUST("08","Aug"),
SEPTEMBER("09","Sep"),
OCTOBER("10","Oct"),
NOVEMBER("11","Nov"),
DECEMBER("12","Dec");
private String month;
private String shorthand;
MonthMapperEnum(String month, String shorthand) {
this.month = month;
this.shorthand = shorthand;
}
// 根据month获取简称
public static String getShortHand(String month){
for(MonthMapperEnum enu:MonthMapperEnum.values()){
if(enu.getMonth().equals(month)){
return enu.getShorthand();
}
}
return null;
}
public String getMonth() {
return month;
}
public String getShorthand() {
return shorthand;
}
}
3、特点
1、枚举本质还是类,enum修饰类:"public enum MonthMapperEnum " 默认是final的,不可被集成
2、构造函数默认为private的
3、绝对单例模式(使用反射实现的反序列化也无法创建多个实例)
4、
参考:http://hollischuang.gitee.io/tobetopjavaer/#/basics/java-basic/enum-usage
网友评论