我有以下enum:
public enum Difficulty {
EASY(2), MEDUIM(3), HARD(5), EXTREME(8);
private int length;
Difficulty(int length) {
this.length = length;
}
public int length() {
return length;
}
}
无论我知道编号还是名称,我都希望能够到达正确的enum实例。例如,如果我有int 3
,我需要一个能够返回MEDIUM
的简单函数。如果我有字符串extreme
,我需要一个简单的函数,能够返回8
。所谓简单,我的意思是我不想每次都迭代,也不想在枚举中保留一个静态数组。
答案必须是Java,请。谢谢。我需要对Difficulty
枚举结构进行什么编辑?
public static Difficulty getByName(String name) {
return valueOf(name.toUpperCase());
}
public static Difficulty getByLength(int length) {
switch (length) {
case 2:
return EASY;
case 3:
return MEDIUM;
case 5:
return HARD;
case 8:
return EXTREME;
default:
throw new IllegalArgumentException("invalid length : " + length);
}
}