我有一個枚舉Foopublic 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?
2 回答

炎炎設計
TA貢獻1808條經驗 獲得超4個贊
你可以試試這個..
public boolean isValidFoo(String fooStr) { return Arrays.stream(Foo.values()) .anyMatch(e -> e.value.equals(fooStr)); }

一只斗牛犬
TA貢獻1784條經驗 獲得超2個贊
您可以添加一個方法
public static Foo getEnum(String value) {
for (Foo foo : Foo.values()) {
if (foo.value.equals(value)) {
return foo;
}
}
return null;
}
添加回答
舉報
0/150
提交
取消