问题 :在平时的项目中经常会用到枚举,但是有时候因为枚举的类型不是我们想要的,或者想获取枚举的含义,比较笨的方法就是通过switch去判断,其实枚举自身有更简便的方法,enum("index","description")
只需要在定义枚举的指定即可,就不需要后续的逻辑转换了。
public enum TestStatus {
/**
* 开始 1
*/
start(1,"开始"),
/**
* 进行中 2
*/
running(2,"进行中"),
/**
* 操作成功 3
*/
success(3,"操作成功"),
/**
* 操作失败 4
*/
fail(4,"操作失败"),
/**
* 操作完成 5
*/
complete(5,"操作完成"),
/**
* 操作取消 6
*/
cancel(6,"操作取消"),
/**
* 审核不通过 7
*/
refuse(7,"审核不通过");
private long state;
private String stateInfo;
TestStatus(long state, String stateInfo) {
this.state = state;
this.stateInfo = stateInfo;
}
public long getState() {
return state;
}
public String getStateInfo() {
return stateInfo;
}
public static TestStatus stateOf(long index){
for (TestStatus state : values()){
if (state.getState() == index){
return state;
}
}
return null;
}
}
返回值获取
TestStatus.success; //枚举TestStatus类型 "success"
TestStatus.success.name();//String类型 "success"
TestStatus.success.getState();//long类型 3
TestStatus.success.getStateInfo();//String类型 "操作成功"
轻松获取枚举索引,英文释义,中文释义,很方便有木有。