写代码就要认真!对着一个简单的枚举定义反复看、反思考,反复问还能优化吗?还能优化吗?可衍生出很多细思极恐的隐藏知识!
- 最基础的枚举定义
/**
年龄类型枚举
*/
@Getter
@AllArgsConstructor
public enum AgeTypeEnum {
AGE_O_9(0, "0~9岁"),
AGE_1O_19(1, "10~19岁"),
AGE_2O_29(2, "20~29岁"),
AGE_3O_39(3, "30~39岁"),
AGE_4O_49(4, "40~49岁"),
AGE_5O_59(5, "50~59岁"),
AGE_6O_69(6, "60~69岁"),
AGE_7O_79(7, "70~79岁"),
AGE_8O_89(8, "80~89岁"),
AGE_9O_99(9, "90~99岁"),
AGE_MORE_THAN_100(10, ">=100岁");
private Integer code;
private String desc;
}
这是一个最基础的定义,很多新手枚举多会定义成这个样子。试想一下,如果现在有一个枚举的code值,怎么能拿到这个枚举对象呢?这种场景枚举经常会用到,显然上面的定义使用起来特别不方便。所以通常会在枚举类中封装一个专门的转换方法。
- 封装值和对象转换方法
/**
年龄类型枚举
*/
@Getter
@AllArgsConstructor
public enum AgeTypeEnum {
AGE_0_9(0, "