现在有一个任务状态枚举如下,怎样根据传入的状态值(1,2,3)获取对应的枚举项呢?
/**
* 任务状态
*/
public enum TaskStatus {
//任务状态: 1 取消,2 运行,3 完成
CANCELLED(1, "取消"),
IN_EXECUTION(2, "运行"),
COMPLETED(3, "完成"),
UNDEFINED(-1, "未定义状态")
;
public final int code;
public final String msg;
TaskStatus(int code, String msg) {
this.code = code;
this.msg = msg;
}
}
可以加一个方法:
public static TaskStatus byCode(int code) {
for (TaskStatus value : values()) {
if (value.code == code) return value;
}
return UNDEFINED;
}