java枚举类型中分号的用法

风格不统一 提交于 2019-12-04 13:51:51

在java中写枚举类型的对象时,发生一个十分诡异的情况

public enum SeckillStatEnum {

    ;在没有写内容的时候,这个分号可有可无。但是如果里面写有方法,这个分号就必须带上。
}

  idea的解释是Enum SeckillStatEnum没有被使用....

在网上也没找到相应的解释,先留着回去查查书

 

....

破案了....写了个枚举,没用到枚举的特性可不就是没有使用嘛...

出问题的代码

/*
* 使用枚举来表示常量数据字段
* */
public enum SeckillStatEnum {
    ;

    private int state;

    private String stateInfo;

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

    public int getState() {
        return state;
    }

    public String getStateInfo() {
        return stateInfo;
    }

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

  

修改的

/*
* 使用枚举来表示常量数据字段
* */
public enum SeckillStatEnum {
    SUCCESS(1,"秒杀成功"),
    END(0,"秒杀结束"),
    REPEAT_KILL(-1,"重复秒杀"),
    INNER_ERROR(-2,"系统异常"),
    DATA_REWRITE(-3,"数据篡改");//可不是没用人家嘛

    ;

    private int state;

    private String stateInfo;

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

    public int getState() {
        return state;
    }

    public String getStateInfo() {
        return stateInfo;
    }

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

  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!