一、定义接口类
public interface BaseEnum {
String getCode();
String getParam();
}
二、使用工具
public class EnumUtil {
public static <E extends Enum<?> & BaseEnum> Optional<E> codeOf(Class<E> enumClass, String code) {
return Arrays.stream(enumClass.getEnumConstants()).filter(e -> e.getCode().equals(code)).findAny();
}
}
三、使用示例
public enum OrderPayLogPaymentStatusEnum implements BaseEnum {
/**
* 未支付
*/
WAITING_TRANSFER("1", "未支付"),
/**
* 未支付
*/
HAVE_TRANSFERRED("2", "已支付");
private String code;
private String param;
OrderPayLogPaymentStatusEnum(String code, String param) {
this.code = code;
this.param = param;
}
@Override
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
@Override
public String getParam() {
return param;
}
public void setParam(String param) {
this.param = param;
}
}
四、获取具体的枚举信息
Optional<OrderPayLogPaymentStatusEnum> statusEnum = EnumUtil.codeOf(OrderPayLogPaymentStatusEnum.class, "1");