JAVA字符串转换成对应的枚举?

标签 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 enumValue = "one";
MyEnum mMyEnum = ??? // I want to make MyEnum.NAME_ONE from "one", but how?

最佳答案

您可以向枚举添加一个方法:

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);

关于JAVA字符串转换成对应的枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40997131/

相关文章:

java - 一个类可以扩展两个类吗?

java - Java中构造函数的调用

typescript 枚举作为参数类型允许无效值

java - 从包含它的类中获取 enum.values()

c++ - 类内枚举前向声明是否可能?

java - Android 性能 : Strings vs. 枚举与静态最终整数

java - 通过改造发布到 Google Cloud Messaging

java - 根据 Combobox 中的选定索引动态更新数据库中的值

Java向文件写入和读取对象数组

javascript - TypeScript 可更新和枚举引用