我正在尝试针对一个Enum集进行查询,因为知道经常会有不匹配项引发异常:我想在执行查询之前检查该值是否存在以避免异常。我的枚举看起来像这样:
public enum Fruit {
APPLE("apple"),
ORANGE("orange");
;
private final String fruitname;
Fruit(String fruitname) {
this.fruitname = fruitname;
}
public String fruitname() {return fruitname;}
}
并且我想在尝试使用相关枚举之前检查“香蕉”是否是我的枚举值之一。我可以通过比较允许的值来比较我的字符串与
Fruit.values()[i].fruitname
但我希望能够做类似(pseduo-code)的操作:
if (Fruit.values().contains(myStringHere)) {...
那可能吗?我是否应该完全使用其他东西(数组或 map ?)?
编辑:最后,我接受了NawaMan的建议,但是感谢大家的所有帮助。
最佳答案
我真的不知道内置解决方案。因此,您可能必须自己将其编写为静态方法。
public enum Fruit {
...
static public boolean isMember(String aName) {
Fruit[] aFruits = Fruit.values();
for (Fruit aFruit : aFruits)
if (aFruit.fruitname.equals(aName))
return true;
return false;
}
...
}