java枚举类型中分号的用法

Posted 牧水

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
    }
}

  

以上是关于java枚举类型中分号的用法的主要内容,如果未能解决你的问题,请参考以下文章

Java中枚举的写法和用法

java枚举类型enum用法

c语言枚举类型enum用法

java枚举类型

Java 枚举类型用法

Java - 枚举