java枚举的使用


规范使用枚举类

public enum StatEnum {
    SUCCESS(1,"成功"),
    END(0,"失败"),
    REPEAT_KILL(-1,"重复"),
    INNER_ERROR(-2,"系统异常"),
    DATA_REWRITE(-3,"数据异常");

    private  int state;

    private  String stateInfo;

    StatEnum(int state, String stateInfo) {
        this.state = state;
        this.stateInfo = stateInfo;
    }

    public int getState() {
        return state;
    }

    public String getStateInfo() {
        return stateInfo;
    }

    public static StatEnum stateOf(int index){
        for(StatEnum state: values()){
            if(state.getState() == index){
                return state;
            }
        }
        return  null;
    }
}

枚举搭配接口一起使用

// 定义接口
public interface CodeEnum {
    Integer getCode();

    String getMessage();
}
// 定义枚举
public enum StatusEnum implements CodeEnum {
    UP(0, "成功"),
    DOWN(1, "失败");
    private Integer code;

    private String message;

    StatusEnum(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    @Override
    public Integer getCode() {
        return code;
    }

    @Override
    public String getMessage() {
        return message;
    }
}
// 定义工具类
public class EnumUtil {

    public static <T extends CodeEnum> T getByCode(Integer code, Class<T> enumClass) {
        for (T each: enumClass.getEnumConstants()) {
            if (code.equals(each.getCode())) {
                return each;
            }
        }
        return null;
    }
}

使用:

  • EnumUtil.getByCode(0, StatusEnum.class).getMessage()
  • EnumUtil.getByCode(1, StatusEnum.class).getCode()

文章作者: wuzhiyong
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 wuzhiyong !
评论
 上一篇
中华人民共和国民法典 中华人民共和国民法典
中华人民共和国民法典 2020年5月28日第十三届全国人民代表大会第三次会议通过 第一编 总则第一章 基本规定 第一条 为了保护民事主体的合法权益,调整民事关系,维护社会和经济秩序,适应中国特色社会主义发展要求,弘扬社会主义核心价值观,根
2020-11-19
下一篇 
springboot转发重定向问题 springboot转发重定向问题
浏览器地址显示问题 return "forward:/list"; 浏览器地址不变,是转发源地址; return "redirect:/list"; 浏览器地址变成list地址. document.querySele
2020-11-17
  目录