我和以下的Enum一样。
public enum MyEnum {
ENUM1("ENUM1Code", "ENUM1 Desc"), ENUM2("ENUM2Code", "ENUM2"), ENUM3("ENUM3Code", "ENUM3");
private String code;
private String description;
private MyEnum(String code, String description) {
this.code = code;
this.description = description;
}
public String getCode() {
return code;
}
public String getDescription() {
return description;
}
}
有人可以建议我如何从这个枚举中删除初始化并通过Spring执行它吗?
提前致谢
迪利普
答案 0 :(得分:0)
你不能因为枚举是静态物体 您可以外部化代码/描述并手动管理它们。
编辑:
我看不出需要使用Spring来完成这类工作;你可以用简单的代码实现相同的目标(使用一点Spring,PropertiesLoaderUtils
实用程序类)
创建一个属性文件,您可以在其中存储每个枚举,代码和描述,并编写实用程序代码来读取数据;您的自定义代码的结果是这样的UDT:
class EnumWithData implements Serializable {
MyEnum enumValue;
String code;
String description;
// Write properties get/set
// Equals check for enumValue only
boolean equals(Object other) {
EnumWithData b = (EnumWithData)other;
return b.enumValue == this.enumValue;
}
}
abstract class EnumWithDataUtility {
private static Properties definition = PropertiesLoaderUtils.loadProperties("path/to/resource");
public final static EnumWithData getEnumWithData(MyEnum enumValue) {
EnumWithData udt = new EnumWithData();
udt.enumValue = enumValue;
...
return udt;
}
}