Мне нужно определить некоторые «метаданные» в перечислении. В принципе, у меня есть несколько параметров, которые присутствуют, когда присутствует какой-либо родительский параметр.Нужны вложенные перечисления для группировки
Например:
enum Param {
ADDPERSON("addperson", false),
DELETEPERSON("deleteperson", false);
String name;
boolean required;
private Param(String name, boolean required) {
this.name = name;
this.required = required;
}
public String getName() {
return this.name;
}
}
Param.ADDPERSON
Теперь у меня есть другие Param определения, связанные с этим перечислений т.е. NAME, EMAIL
и т.д.
Идеально было бы, чтобы быть в состоянии назвать Param.ADDPERSON.NAME
. Это не представляется возможным, за исключением этого метода обхода с внутренним статическим перечислимого:
enum Param {
ADDPERSON("addperson", false),
DELETEPERSON("deleteperson", false);
String name;
boolean required;
private Param(String name, boolean required) {
this.name = name;
this.required = required;
}
public String getName() {
return this.name;
}
public static enum AddPerson {
NAME("name", true),
EMAIL("email", true);
String name;
boolean required;
public String getName() {
return this.name;
}
private AddPerson(String name, boolean required) {
this.name = name;
this.required = required;
}
}
}
Теперь я могу использовать Param.AddPerson.NAME
, но это не чистое решение + мне нужно, чтобы быть в состоянии захватить ребенка перечислений, например, получить все дочерние перечисления ADDPERSON
.
Цель состоит в том, чтобы эти параметры были централизованы, чтобы я мог выполнять «общую проверку».