实际工作中经常需要用到枚举类,常见的场景是:
1.获取枚举元素的编码值.
2.获取枚举元素的对应的内容意义.
3.根据编码值获取枚举元素.
其实这类需求枚举的代码是通用的,可以作为模板套用,这里总结如下:
1.创建枚举类和元素.
2.定义私有变量code(编码)和desc(描述),并提供带这两参数的私有构造函数.
3.提供code,desc的类似get方法.
4.利用枚举的自带函数values()创建根据编码获取枚举元素的get方法.
以季节为例,示例代码如下,可以主方法进行测试:
================================================================
package com.tgy.guava;
public enum Season {
SPRING(1,"春天"),
SUMMER(2,"夏天"),
AUTUMN(3,"秋天"),
WINTER(4,"冬天");
/**枚举元素对应的编码值*/
private int code;
/**枚举元素对应的内容意义*/
private String desc;
private Season(int code,String desc){
this.code=code;
this.desc=desc;
}
public int code(){
return this.code;
}
public String desc(){
return desc;
}
/**
* @param code 编码值
* @return 返回code对应的enum枚举类,对于code不存在则返回null.
*/
public Season getEnum(int code){
for(Season s:values()){
if(s.code==code){
return s;
}
}
return null;
}
}