【发布时间】:2012-10-04 13:19:08
【问题描述】:
我有一个 Java 对象,它表示数据库的内容,如下所示:
public Database {
int varA;
String varB;
double varC;
}
现在我正在尝试选择和排序某些元素以进行处理,但我想让它可配置,所以我创建了一个枚举,它代表对象的所有属性,例如
public enum Contents {
VarA,
VarB,
VarC;
}
所以现在当我创建一个像这样的选择时
Contents[] select = { Contents.VarC, Contents.VarB };
我想从中生成一个代表实际数据库内容的字符串值列表。现在我能想到的唯一实现是切换选择中的每个条目,具有非常丑陋的二次复杂度......
public List<String> switchIT(Database db, Contents[] select) {
List<String> results = new ArrayList<String>();
for (Contents s : select) {
switch(s) {
case VarA:
results.add(db.varA.toString());
break;
//go on...
}
}
return results;
}
有没有更直接的方式在枚举和动态对象值之间进行映射? 或者更笼统地说:从对象中动态选择值的最佳方式是什么?
【问题讨论】:
标签: java database select enums