gpt4 book ai didi

java - 在不迭代的情况下查找枚举中是否存在?

转载 作者:行者123 更新时间:2023-11-29 05:03:50 24 4
gpt4 key购买 nike

尝试通过常量参数/字段值(即 value0/value1/value2)查找元素而不进行迭代;有办法吗?找到了适用于枚举常量名称(即 CONSTANT0/CONSTANT1/CONSTANT2)而不是该名称的参数/字段值的 Guava 实用方法。

    import com.google.common.base.Enums;

enum Enum {
CONSTANT0("value0"), CONSTANT1("value1"), CONSTANT2("value2");
private final String value;

Enum(String value) {
this.value = value;
}

public String getValue() {
return value;
}
}

public class Driver {
public static void main(String[] args) {
// prints when input is value0
for (Enum constant : Enum.values()) {
if (constant.getValue().equalsIgnoreCase(args[0])) {
System.out
.println("vanilla version works with value i.e. java Driver value0"
+ args[0]);
}
}
// prints when input is CONSTANT0
if (Enums.getIfPresent(Enum.class, args[0]).isPresent())
System.out
.println("guava version works with constant i.e. java Driver CONSTANT0"
+ args[0]);
}
}

最佳答案

在缺少优雅的专有或库函数的情况下,我建议您使用 Java 8:

Stream.of(Enum.values()).anyMatch(e -> e.getValue().equals("value0"));

关于java - 在不迭代的情况下查找枚举中是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31085699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com