我不认为没有捕获异常的内置方法。您可以改用如下方式:
public static MyEnum asMyEnum(String str) { for (MyEnum me : MyEnum.values()) { if (me.name().equalsIgnoreCase(str)) return me; } return null;}编辑: 正如乔恩·斯凯特(Jon
Skeet)所述,
values()每次调用时,都会通过克隆私有支持数组来工作。如果性能至关重要,则可能
values()只需要调用一次,缓存阵列并对其进行迭代。
另外,如果您的枚举值很多,那么Jon Skeet的map替代方法可能比任何数组迭代都具有更好的性能。



