Java中自定义枚举工具类,根据枚举类code获取msg

本人开发过程中遇到的问题,类似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);
}

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值