【发布时间】:2010-06-07 16:00:02
【问题描述】:
我正在尝试根据从数据库中检索的数据声明枚举类型。我有一个方法,它返回一个字符串数组,该数组包含表中我想变成枚举类型的所有行。有没有办法用数组构造枚举?
这是我尝试过的,但从它在 eclipse 中的样子来看,这似乎只是用那个名称创建了一个方法:
public enum ConditionCodes{
Condition.getDescriptions();
}
提前谢谢你!
【问题讨论】:
-
您还可以聪明地编写代码,从数据库中检索值,生成一个使用这些值声明枚举的 .java 文件,然后从那里编译代码。
-
@Sean:是的,这很聪明,但也很脆弱。无论如何,你会失去
enum的大部分优势,那么为什么要花这么多精力来获得这么少的好处呢? -
我同意这有点令人费解,但它是关于 Android 应用程序对其资源所做的事情。枚举比比较原始字符串常量(例如
foo.equals("SOMETHING")与foo == Things.SOMETHING)要好,因为您可以获得编译时类型检查。这是一种自动维护该枚举的方法。 -
@Sean:我明白,但是通过实现我在答案中链接的类型安全枚举模式的变体,同样可以达到这个目标。这将涉及更少的黑魔法。