从许多枚举的值中找到枚举的最佳方法

BnJ*_*BnJ 0 java enums

我有很多枚举.

我想为所有枚举添加一个通用方法,允许通过值查找枚举.就像这样的事情:

public static T getEnumFromVal(String val) {
    for (T e : values()) {
        if (e.getVal().equals(val)) {
            return e;
        }
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

我可以让enum实现一个接口,但不幸的是我使用Java 6而且我不能声明一个静态方法:( ...

你有其他想法吗?

mdn*_*lue 8

此方法已存在于Java API中:

Enum.valueOf(Type.class, "Enum String");
Run Code Online (Sandbox Code Playgroud)

此方法也存在于所有枚举类型中,例如,如果您有一个名为Enum的枚举Color:

Color.valueOf("RED");
Run Code Online (Sandbox Code Playgroud)

将返回枚举类型Color.RED.

Java 6 Enum doc