我想用数据库中的键创建一个枚举。然后,对于每个键,我想从同一个数据库中设置值。
因为数据库非常长。
例如,数据库可以这样填充:
ABCD | 3
AAA | Freddy
BB | true
并会有一个类:
ENUM MyValues { ABCD, AAA, BB, ... }
我可以得到一个特定的价值:
MyValues.AAA //returns "Freddy"
(希望值可以是任何数据类型,但如果不可能,String将执行。)
(我探讨了一些太旧的文章。)
我怎么做到这一点?
你不应该在枚举中使用很多类型。但如果你想,你可以试试这个:
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;
}
}
无论如何,你必须将对象解析为正确的类型!
您可以考虑使用@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();
请注意,您可以将Enum视为类,因为Enum是一个类。
当您创建数据类型类来表示表的一行时,您需要使该类按原样或同等地描述列值。例如,当您的列是字符串时,您应该在类中使用字符串变量而不是整数,双精度或其他。