JAVA字符串进入相应的枚举?

时间:2016-12-06 13:59:37

标签: java enums

我制作了这个包含字符串值的枚举。

我有这样的枚举:

enum MyEnum {
    NAME_ONE("one"),
    NAME_TWO("two");

    private String value;

    MyEnum(String value) {
        this.value = value;
    }

    public String toString() {
        return value;
    }
}

现在,我想将String转换为Enum:

String enumValue = "one";
MyEnum mMyEnum = ??? // I want to make MyEnum.NAME_ONE from "one", but how?

1 个答案:

答案 0 :(得分:1)

您可以向enum添加方法:

public static MyEnum parseValue (final String value) {
    for (final MyEnum me : MyEnum.values()) {
        if (me.value.equals(value)) {
            return me;
        }
    }
    throw new IllegalArgumentException("Incorrect value: " + value);
}

并称之为:

String enumValue = "one";
MyEnum mMyEnum = MyEnum.parseValue(enumValue);