次のように、データベースの内容を表す 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;
}
列挙型と動的オブジェクトの値をマッピングするより直接的な方法はありますか? または、より一般的に言えば、オブジェクトから動的に値を選択する最良の方法は何ですか?