码迷,mamicode.com
首页 > 编程语言 > 详细

java枚举类型中分号的用法

时间:2019-11-15 20:31:02      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:字段   没有   对象   state   情况   stat   就是   lstat   表示   

在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枚举类型中分号的用法

标签:字段   没有   对象   state   情况   stat   就是   lstat   表示   

原文地址:https://www.cnblogs.com/mushuise/p/11869156.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!