java枚举类型中分号的用法

在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;
    }
}

  

posted @ 2019-11-15 19:33  牧水  阅读(900)  评论(1编辑  收藏  举报