Java:检查枚举是否包含给定的字符串?

这是我的问题-我正在寻找(如果存在的话)等效于的枚举ArrayList.contains();

这是我的代码问题的一个示例:

enum choices {a1, a2, b1, b2};

if(choices.???(a1)}{

//do this

}

现在,我意识到,使用ArrayListof 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

回到顶部