我有一些枚举枚举,每个枚举都包含要测试的属性名称。我遇到的问题是如何为对象选择相关的枚举。我怎样才能定义一个枚举变量,它贯穿我的代码,可以通过initalise方法设置。选择正确的枚举
编辑:
对不起,延迟响应。我不得不离开办公桌
这很糟糕的设计。我有几个枚举如下:
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;
}
}
在我的代码,我检查传入对象的字段,看看它们都包含在枚举内。具体如下:
if (BlockManValEnum.contains(fields[i].getName()))
但是我想它沿着哪里variableEnum
可以在运行时设置的
if (variableEnum.contains(fields[i].getName()))
线是。
希望这是更清晰的家伙
你能否提供一些更具体的细节? –
你的问题不是很清楚。 ** a)**似乎数字应该是小写,除非您正在谈论一个没有意义的数字对象。 ** b)**如果您发布有问题的代码或示例代码来完成相同的任务,那么回答您会容易得多。你能做这个吗? (越早越好,对问题的评价可能会比较快,您可能想要[删除]您的问题,并再次发布更详细的信息。) –
老实说?我不明白你是什么意思:)但对我来说,它看起来是一个非常丑陋的测试设计。 –