У меня есть несколько перечислений, каждое из которых содержит имена проверяемых атрибутов.У меня проблема в том, как выбрать соответствующее перечисление для объекта.Как я могу определить только переменную Enum, которая используется во всем моем коде, которая может быть установлена с помощью метода инициализации.
РЕДАКТИРОВАТЬ:
Извините за задержку ответа.Мне пришлось отойти от стола
Очень хорошо, будет плохой дизайн.У меня есть несколько перечислений следующим образом:
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
можно установить во время выполнения.
Надеюсьпонятнее ребята