我想用数据库中的键创建一个枚举。然后,对于每个键,我想从同一数据库中设置值。
因为数据库非常长。
例如,数据库可以这样填充:
ABCD | 3
AAA | Freddy
BB | true
并且会有一个像这样的类:
ENUM MyValues { ABCD, AAA, BB, ... }
我可以得到一个特定的值:
MyValues.AAA //returns "Freddy"
(希望值可以是任何数据类型,但如果可能,则可以使用String。)
(我浏览了一些过时的文章。)
我将如何实现?
答案 0 :(得分:0)
您不应在枚举中使用很多类型。但是,如果您愿意,可以尝试以下方法:
public enum MyValues {
ABCD(Integer.class, 3),
AA(String.class, "Freddy"),
BB(Boolean.class, true);
private Object value;
private Class<?> clazz;
private MyValues(Class clazz, Object value) {
this.clazz = clazz;
this.value = value;
}
public Object getMyValue() {
return value;
}
public Class<?> getMyClass() {
return this.clazz;
}
}
无论如何,您必须将对象解析为正确的类型!
答案 1 :(得分:0)
您可以考虑使用@Liar答案。但这偏离了枚举的初衷。为了代码可维护性,您应该坚持一种枚举类型。只需使用这样的单一类型:
public enum MyValue {
ABCD("3"),
AA("Freddy"),
BB("true");
private String value;
MyValue(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
您可以通过调用以下代码来获取价值:
ABCD.getValue();
请注意,因为枚举是一个类,所以您可以将枚举视为类。
创建数据类型类以表示表的一行时,需要使该类按原样描述列值。例如,当列是字符串时,应在类中使用字符串变量,而不是整数,双精度数或其他形式。