一个枚举匹配的小知识

2020-08-11  本文已影响0人  cmeizu
public enum CategoryNameEnum {

    /**
     * 题目类型名称
     */
    SINGLE_CHOICE(1, "单选题"),
    MULTIPLE_CHOICE(2, "多选题"),
    JUDGE(3, "判断题"),
    COMPLETION(4, "填空题"),
    SHORT_ANSWER(5, "简答题"),
    CALCULATE(6, "计算题"),
    DOUBLE_CHOICE(7, "双项选择题"),
    QUESTION_ANSWER(8, "问答题"),
    ;

    private int value;
    private String name;

    CategoryNameEnum(int value, String name) {
        this.value = value;
        this.name = name;
    }

    public int getValue() {
        return value;
    }

    public String getName() {
        return name;
    }
}

这时候使用只能是说用常量值,或者获取相应的消息.如果入参给一个题型的代码,那么怎么去匹配,然后获取题型名称呢?有两种写法.


    public CategoryNameEnum getCategory(int value) {
        switch (value) {
            case 1:
                return SINGLE_CHOICE;
             ...
             ...
             ...
            default:
        }

这是可以得到我们想要的结果的.

private CategoryNameEnum getCategory(int value) {
        for (CategoryNameEnum nameEnum : CategoryNameEnum.values()) {
            if (nameEnum.getValue() == value) {
                return nameEnum;
            }
        }
        return null;
    }
上一篇 下一篇

猜你喜欢

热点阅读