/**
* 作者:guoyzh
* 时间:2020/7/27 14:43
* 功能:BaseEnum
*/
public interface BaseEnum {
/**
* 获取枚举标识
*
* @return
*/
Integer getCode();
/**
* 获取枚举描述
*
* @return
*/
String getDesc();
/**
* 通过枚举类型和code值获取对应的枚举类型
*
* @param enumType
* @param code
* @param <T>
* @return
*/
static <T extends BaseEnum> T valueOf(Class<? extends BaseEnum> enumType, Integer code) {
if (enumType == null || code == null) {
return null;
}
T[] enumConstants = (T[]) enumType.getEnumConstants();
if (enumConstants == null) {
return null;
}
for (T enumConstant : enumConstants) {
int enumCode = enumConstant.getCode();
if (code.equals(enumCode)) {
return enumConstant;
}
}
return null;
}
/**
* 将enum转换为list
*
* @param enumType
* @param <T>
* @return
*/
static <T extends BaseEnum> List<Map<String, Object>> enum2List(Class<? extends BaseEnum> enumType) {
if (enumType == null) {
return null;
}
T[] enumConstants = (T[]) enumType.getEnumConstants();
if (enumConstants == null) {
return null;
}
ArrayList<Map<String, Object>> results = new ArrayList<>();
for (T bean : enumConstants) {
String desc = bean.getDesc();
Integer code = bean.getCode();
HashMap<String, Object> map = new HashMap<>();
map.put("code", code);
map.put("desc", desc);
results.add(map);
}
return results;
}
}
public enum SjyzfwsVerifyStateEnum implements BaseEnum {
STATUS0(0, "未审核"),
STATUS1(1, "未审核"),
STATUS2(2, "审核通过"),
STATUS3(3, "审核未通过");
private Integer code;
private String desc;
SjyzfwsVerifyStateEnum(int code, String desc) {
this.code = code;
this.desc = desc;
}
public void setCode(Integer code) {
this.code = code;
}
public void setDesc(String desc) {
this.desc = desc;
}
@Override
public Integer getCode() {
return code;
}
@Override
public String getDesc() {
return desc;
}
}
BaseEnum.valueOf(SjyzfwsRecommendTypeEnum.class, getRecommendType()).getDesc()