0

要素の組み合わせを保持するためのコレクション オブジェクトまたはアプローチはありますか?

たとえば、名前、年齢、身長、体重の要素の組み合わせを含むリストを作成する必要があります。

私の場合、このためのオブジェクトを作成することはお勧めできません。フィールドの数が変化し続けるためです。クエリに渡すには、このリストを作成する必要があります。

解決策はありますか?

4

3 に答える 3

2
class MyContainer {
  String someString;
  int someInt;
}

List <MyContainer> myList = new List<>();

そんな感じ!?

「これのためにオブジェクトを作成することは、私の場合は良い考えではありません」という意味が正確にはわかりません。別の方法として、グループ化されたオブジェクトのリストが必要な場合は、を作成して、List<Object>持っているものをすべて入れることもできます。List<List<Object>>

于 2013-07-06T22:59:47.457 に答える
1

そのために Map を使用し、属性名をキーとして使用するのはどうですか (例: Weight )? 必要な属性の任意の組み合わせを使用でき、そのようなコレクションをクエリに渡すと便利です

より多くの列名の型の安全性が必要な場合は、Enum マップを検討してください

于 2013-07-07T00:48:03.253 に答える
1

最善のアプローチは、考えられるすべての要素を含むオブジェクトを作成することです。

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
 }
于 2013-07-07T00:34:31.780 に答える