本人开发过程中遇到的问题,类似map获取数据的方式,根据枚举类code获取msg。
第一步,定义CodeEnum接口,需要枚举类实现该接口,如下
public interface CodeEnum {
Integer getCode();
String getMsg();
}
第二步,创建自定义枚举类CustomEnum,实现CodeEnum接口,如下
public enum CustomEnum implements CodeEnum {
SUCCESS(1,"请求成功"),
FAIL(0,"请求失败")
;
private Integer code;
private String msg;
CustomEnum(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
@Override
public Integer getCode() {
return code;
}
@Override
public String getMsg() {
return msg;
}
}
第三步,创建枚举工具类EnumUtil,如下
public class EnumUtil {
public static <T extends CodeEnum> String getByCode(Integer code, Class<T> t){
for(T item: t.getEnumConstants()){
if(item.getCode() == code){
return item.getMsg();
}
}
return "";
}
}
第四步,具体代码调用方式如下,结果如下图
@Test
public void testEnumUtil() {
log.info("测试中!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
String msg = EnumUtil.getByCode(CustomEnum.SUCCESS.getCode(), CustomEnum.class);
}