如何通过int或string访问enum ?



我有以下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);
    }
}

相关内容

  • 没有找到相关文章

最新更新