java - 根据附加值获取枚举?

标签 java enums

我有一个这样定义的枚举:

private static enum COLOR {
    BLACK(Color.BLACK,"Black"),
    GREEN(Color.GREEN,"Green");

    private Color color;
    private String name;

    COLOR(String n, Color c) {
        this.name = n;
        this.color = c;
    }

我试图找到一种方法来根据字符串(这是第二个附加参数)获取枚举常量。因此,对于一个完全假设的示例,我会做类似的事情

COLOR.getEnumFromString("Green")

最佳答案

  public static COLOR getEnumFromString(final String value) {
        if (value == null) {
            throw new IllegalArgumentException();
        }

        for (COLOR v : values()) {
            if (value.equalsIgnoreCase(v.getValue())) {
                return v;
            }
        }

        throw new IllegalArgumentException();
    }

关于java - 根据附加值获取枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16090870/

相关文章:

java - 有条件地将maven中的部分资源排除在war之外

ios - 类似枚举的功能的替代品并且能够在 Swift 中扩展

Java同步问题,线程间通信

java - Quaqua 外观问题

enums - 为什么这个 Rust 枚举没有变小?

c++ - 在 constexpr 分支中使用枚举类值

java - 枚举传递多个字段值?

entity-framework - 仅生产错误 - "The specified value is not an instance of type ' Edm.Int3 2' Parameter name: value"

java - 以编程方式生成 Eclipse 项目

java - 如何从 GenericRecord 获取类型值?