按名称获取Java枚举

Getting java enum by name

本问题已经有最佳答案,请猛点这里访问。

是否可以通过搜索枚举的名称而不是值来获取枚举?例如:

1
2
3
4
public enum MyEnum {
    TOTO("some value", 1);
    ZOZO("some other value", 2);
}

我想做的是像这样一个能干的人:

1
2
3
public static MyEnum getByName(String str) {
    [...]
}

所以我可以做到:

1
2
MyEnum foo = MyEnum.getByName("TOTO");
MyEnum bar = MyEnum.getByName("ZOZO");


每个JavaEnUM都有方法EDCOX1(0),它通过名称返回枚举。

1
2
MyEnum foo = MyEnum.valueOf("TOTO");
MyEnum bar = MyEnum.valueOf("ZOZO");