安卓:创建一个枚举并为每个键插入一个值



我想用数据库中的键创建一个枚举。然后对于每个键,我想从同一个数据库中设置值。

因为数据库非常长。

例如,数据库可以这样填充:

ABCD | 3
AAA  | Freddy
BB   | true

并且将有一个这样的类:

ENUM MyValues { ABCD, AAA, BB, ... }

我可以得到一个特定的值:

MyValues.AAA //returns "Freddy"

(希望这些值可以是任何数据类型,但如果不可能,字符串就可以了。

(我浏览了一些太旧的文章。

我将如何实现这一目标?

不应该在枚举中使用很多类型。但是如果你愿意,你可以试试这个:

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();

请注意,您可以将枚举视为类,因为枚举是一个类

创建数据类型类来表示表的一行时,需要使该类按原样或相等地描述列值。例如,当列是字符串时,应在类中使用字符串变量,而不是整数、双精度或 else。

最新更新