我想在一个枚举集合中查找,但通常会出现非匹配的情况导致抛出异常:为了避免异常,我想在执行查找操作之前检查值是否存在。我的枚举看起来像这样:
public enum Fruit {
APPLE("apple"),
ORANGE("orange");
;
private final String fruitname;
Fruit(String fruitname) {
this.fruitname = fruitname;
}
public String fruitname() {return fruitname;}
}
我想在使用相关枚举之前检查,比如说,“banana”是否是我的枚举值之一。我可以遍历允许的值,将字符串与之进行比较。
Fruit.values()[i].fruitname
但我想要能够做类似这样的事情(伪代码):
if (Fruit.values().contains(myStringHere)) {...
这是否可能?我应该完全使用其他东西(数组?地图?)吗?
编辑:最终我采用了NawaMan的建议,但感谢所有人提供的有用输入。
return EnumUtils.isValidEnum(Fruit.class, fruitname) ? Fruit.valueOf(fruitname) : null;
在此检查后,可以在同一行中使用valueOf方法。 - Kerim Oguzcan Yenidunyaimport org.apache.commons.lang3.EnumUtils;
- Shannon