gpt4 book ai didi

java - 选择正确的枚举

转载 作者:行者123 更新时间:2023-12-04 06:15:45 24 4
gpt4 key购买 nike

我有许多枚举,每个枚举都包含要测试的属性的名称。我的问题是如何为对象选择相关的枚举。如何仅定义一个在我的代码中使用的 Enum 变量,该变量可以通过 initalise 方法进行设置。

编辑:

抱歉延迟回复。我不得不离开办公 table

这很可能是糟糕的设计。我有几个枚举如下:

public enum AccountGrpEnum {
Account("Account"),
AccountType("AccountType"),
AcctIDSource("AcctIDSource");

private static Set<String> grpNames = new HashSet<String>(3) {{
for(AccountGrpEnum e : AccountGrpEnum.values()) {
add(e.toString());
}
}};

public static boolean contains(String name) {
return grpNames.contains(name);
}

private String name;

private AccountGrpEnum(String name) {
this.name = name;
}

public String toString() {
return this.name;
}

}

另一个 Enum :
public enum BlockManValEnum {

avgPx("avgPx"),
quantity("quantity"),
securityIDSource("securityIDSource"),
securityID("securityID"),
blockStatus("blockStatus"),
side("side");

private static Set<String> names = new HashSet<String>(9) {{
for(BlockManValEnum e : BlockManValEnum.values()) {
add(e.toString());
}
}};

public static boolean contains(String name) {
return names.contains(name);
}

private String name;

private BlockManValEnum(String name) {
this.name = name;
}

public String toString() {
return this.name;
}

}

在我的代码中,我正在检查传入对象的字段以查看它们包含在 Enum 中。如下:
if (BlockManValEnum.contains(fields[i].getName()))

但是我希望它符合
if (variableEnum.contains(fields[i].getName()))

哪里 variableEnum可以在运行时设置。

希望这是更清楚的家伙

最佳答案

使用 Enum.valueOf :

Enum<?> variableEnum = AccountGrpEnum.class;
if(Enum.valueOf(variableEnum.getClass(), field[i].getName()) != null) {
doSomething();
}

关于java - 选择正确的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7271570/

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