我需要在枚举中定义一些“元数据”。基本上,我有多个参数,当某些父参数存在时,这些参数就会存在。
例如:
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
我有其他与此枚举相关的参数定义,即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
.
关键是要集中这些参数,以便我可以对它们执行“通用验证”。