Java:检查枚举是否包含给定的字符串?
这是我的问题-我正在寻找(如果存在的话)等效于的枚举ArrayList.contains();
。
这是我的代码问题的一个示例:
enum choices {a1, a2, b1, b2};if(choices.???(a1)}{
//do this
}
现在,我意识到,使用ArrayList
of Strings
是最好的方法,但是我必须通过其他地方的开关/案例来运行我的枚举内容。因此,我的问题。
假设这样的事情不存在,我该怎么做呢?
回答:
应该这样做:
public static boolean contains(String test) { for (Choice c : Choice.values()) {
if (c.name().equals(test)) {
return true;
}
}
return false;
}
这样,您不必担心以后再添加其他枚举值,它们都已选中。
如果枚举很大,则可以将值粘贴在HashSet中:
public static HashSet<String> getEnums() { HashSet<String> values = new HashSet<String>();
for (Choice c : Choice.values()) {
values.add(c.name());
}
return values;
}
然后,您可以做:values.contains("your string")
返回true或false。
以上是 Java:检查枚举是否包含给定的字符串? 的全部内容, 来源链接: utcz.com/qa/432289.html