Android:创建一个ENUM并为每个键插入一个值

问题描述 投票:0回答:2

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

因为数据库非常长。

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

ABCD | 3
AAA  | Freddy
BB   | true

并会有一个类:

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

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

MyValues.AAA //returns "Freddy"

(希望值可以是任何数据类型,但如果不可能,String将执行。)

(我探讨了一些太旧的文章。)

我怎么做到这一点?

android enums associative-array
2个回答
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;
    }
}

无论如何,你必须将对象解析为正确的类型!


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

请注意,您可以将Enum视为类,因为Enum是一个类。

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

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.