要素の組み合わせを保持するためのコレクション オブジェクトまたはアプローチはありますか?
たとえば、名前、年齢、身長、体重の要素の組み合わせを含むリストを作成する必要があります。
私の場合、このためのオブジェクトを作成することはお勧めできません。フィールドの数が変化し続けるためです。クエリに渡すには、このリストを作成する必要があります。
解決策はありますか?
要素の組み合わせを保持するためのコレクション オブジェクトまたはアプローチはありますか?
たとえば、名前、年齢、身長、体重の要素の組み合わせを含むリストを作成する必要があります。
私の場合、このためのオブジェクトを作成することはお勧めできません。フィールドの数が変化し続けるためです。クエリに渡すには、このリストを作成する必要があります。
解決策はありますか?
class MyContainer {
String someString;
int someInt;
}
List <MyContainer> myList = new List<>();
そんな感じ!?
「これのためにオブジェクトを作成することは、私の場合は良い考えではありません」という意味が正確にはわかりません。別の方法として、グループ化されたオブジェクトのリストが必要な場合は、を作成して、List<Object>
持っているものをすべて入れることもできます。List<List<Object>>
そのために Map を使用し、属性名をキーとして使用するのはどうですか (例: Weight )? 必要な属性の任意の組み合わせを使用でき、そのようなコレクションをクエリに渡すと便利です
より多くの列名の型の安全性が必要な場合は、Enum マップを検討してください
最善のアプローチは、考えられるすべての要素を含むオブジェクトを作成することです。
class myObject {
String name;
Integer age;
Float weight;
// Etc
}
または、基本クラスを作成してから、追加の要素でこれを拡張する別のクラスを作成します
class myExtendedObject extends myObject{
String streetAddress;
String city;
// etc;
}
次に、要素をnullに設定していない場合...クエリを返すメソッドを含めることで、オブジェクト自体からクエリをいつでも作成できます。nullかどうかを確認し、クエリに含めないでください( SQL スタイルのクエリ)
public String buildQuery{
String query = "Select * from blahtable Where ";
query += (name != null)?" name = " + name : "";
// etc, or what ever your query needs to be
return query
}
それ以外の場合は、要素のマップを返すメソッドを使用するだけで、各要素のタイプがキーに基づいていることがわかります
public Map<String, Object> getElements{
Map<String, Object> myMap = new HashMap<String, Object>();
if(name != null)
myMap.put("Name", name);
// etc
return myMap
}