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