我有以下枚举:
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;
}
}
我希望能够到达正确的枚举实例,无论我知道号码还是名称。
例如,如果我有int 3
,我需要一个能够返回MEDIUM
的简单函数。如果我有字符串extreme
,我需要一个能够返回8
的简单函数。
简单来说,我的意思是我不想每次迭代或在枚举中保留一个静态数组。
答案必须是Java,请。谢谢。
我需要对Difficulty
枚举结构进行哪些编辑?
答案 0 :(得分:1)
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);
}
}