java项目启动时扫描枚举类是否存在重复的key和value,存在则使启动失败

88 阅读1分钟

枚举类

public class StatusEnum {    
    ONE("100", "一"),
    TWO("101", "二"),
    THREE("101", "三"),
    FOUR("103", "四");

    private String code;
    private String value;

    StatusEnum(String code, String value) {        
        this.code = code;        
        this.value = value;    
    }
    public String getCode() {        
        return code;    
        }
    public String getValue() {        
        return value;    
    }
}

实体类写好了,现在需要在项目启动时发现有错误时使项目启动报错

 java项目终止参数:System.exit(参数);
 正常终止当前虚拟机:System.exit(0);
 非正常终止当前虚拟机:System.exit(非0int整数);
 
 

在枚举类中写一个静态模块,项目启动时就会编译该模块

`
stati{
    Set<String> keySet = new HashSet<>();
    for (StatusEnum statusEnum : StatusEnum.values()) {
        if (keySet.contains(statusEnum.getCode())) {
            log.info("存在重复的code!{}",statusEnum.getCode());
            System.exit(-999);
        }
        keySet.add(statusEnum.getCode());
    }
}

`