我们如何将字符串与 Java 中枚举元素的值进行比较

我有一个枚举Foo


public enum Foo {


    A("first"),


    B("second"),


    private final String value;


    private Foo(String value) {

        this.value = value;

    }


    public String value() {

        return this.value;

    }


}

下面我试图检查我的枚举中是否包含字符串。


public boolean isValidFoo(String fooStr) {

return EnumSet.allOf(Foo.class)

                        .contains(Foo.valueOf(fooStr.toUpperCase()));

}

当我发送A或Bfor时,这有效fooStr。first当我发送或second发送时如何使其工作fooStr?


饮歌长啸
浏览 144回答 2
2回答

炎炎设计

你可以试试这个..public boolean isValidFoo(String fooStr) {     return Arrays.stream(Foo.values())             .anyMatch(e -> e.value.equals(fooStr)); }

一只斗牛犬

您可以添加一个方法  public static Foo getEnum(String value) {        for (Foo foo : Foo.values()) {            if (foo.value.equals(value)) {                return foo;            }        }        return null;  }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java