首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java:检查enum是否包含给定的字符串?

Java:检查enum是否包含给定的字符串?
EN

Stack Overflow用户
提问于 2011-02-09 02:27:05
回答 30查看 407.5K关注 0票数 214

这就是我的问题--我正在寻找(如果它存在的话) ArrayList.contains();的枚举等价物。

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

代码语言:javascript
复制
enum choices {a1, a2, b1, b2};

if(choices.???(a1)}{
//do this
} 

现在,我意识到在这里使用StringsArrayList会更好,但我必须在其他地方通过开关/case来运行我的枚举内容。这就是我的问题所在。

假设这样的东西不存在,我怎么去做呢?

EN

回答 30

Stack Overflow用户

发布于 2014-02-12 22:11:07

改用Apache commons lang3库。

代码语言:javascript
复制
 EnumUtils.isValidEnum(MyEnum.class, myValue)
票数 269
EN

Stack Overflow用户

发布于 2016-06-03 17:47:26

如果你使用的是Java 1.8,你可以选择Stream + Lambda来实现:

代码语言:javascript
复制
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);
票数 53
EN

Stack Overflow用户

发布于 2015-10-26 21:39:06

Guavas Enums可以成为你的朋友

就像这样:

代码语言:javascript
复制
enum MyData {
    ONE,
    TWO
}

@Test
public void test() {

    if (!Enums.getIfPresent(MyData.class, "THREE").isPresent()) {
        System.out.println("THREE is not here");
    }
}
票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4936819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档