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