定义接口
public interface CodedEnum {
Integer getCode();
String getTag();
static <E extends Enum<?> & CodedEnum> Optional<E> codeOf(Class<E> enumClass, Integer code) {
return Arrays.stream(enumClass.getEnumConstants()).filter(e -> e.getCode().equals(code)).findFirst();
}
}
使用接口
public enum EduDegree implements CodedEnum {
JUNIOR(0, "初中及以下"),
SECONDARY(1, "中专/中技"),
SENIOR(2, "高中"),
College(3, "大专"),
BACHELOR(4, "本科"),
MASTER(5, "硕士"),
DOCTOR(6, "博士")
;
private final Integer code;
private final String tag;
}