这就是我的问题--我正在寻找(如果它存在的话) ArrayList.contains();
的枚举等价物。
下面是我的代码问题的一个示例:
enum choices {a1, a2, b1, b2};
if(choices.???(a1)}{
//do this
}
现在,我意识到在这里使用Strings
的ArrayList
会更好,但我必须在其他地方通过开关/case来运行我的枚举内容。这就是我的问题所在。
假设这样的东西不存在,我怎么去做呢?
发布于 2014-02-12 22:11:07
改用Apache commons lang3库。
EnumUtils.isValidEnum(MyEnum.class, myValue)
发布于 2016-06-03 17:47:26
如果你使用的是Java 1.8,你可以选择Stream + Lambda来实现:
public enum Period {
DAILY, WEEKLY
};
//This is recommended
Arrays.stream(Period.values()).anyMatch((t) -> t.name().equals("DAILY1"));
//May throw java.lang.IllegalArgumentException
Arrays.stream(Period.values()).anyMatch(Period.valueOf("DAILY")::equals);
发布于 2015-10-26 21:39:06
Guavas Enums可以成为你的朋友
就像这样:
enum MyData {
ONE,
TWO
}
@Test
public void test() {
if (!Enums.getIfPresent(MyData.class, "THREE").isPresent()) {
System.out.println("THREE is not here");
}
}
https://stackoverflow.com/questions/4936819
复制相似问题