是否有集合对象或方法来保存元素的组合?
例如,我需要创建一个列表,其中包含元素名称、年龄、身高和体重的组合。
在我的情况下,为此创建一个对象不是一个好主意。因为字段的数量不断变化。我需要创建此列表以传递给查询。
有什么解决办法吗?
是否有集合对象或方法来保存元素的组合?
例如,我需要创建一个列表,其中包含元素名称、年龄、身高和体重的组合。
在我的情况下,为此创建一个对象不是一个好主意。因为字段的数量不断变化。我需要创建此列表以传递给查询。
有什么解决办法吗?
class MyContainer {
String someString;
int someInt;
}
List <MyContainer> myList = new List<>();
那样的东西!?
我不确切知道,“在我的情况下为此创建对象不是一个好主意”是什么意思。作为替代方案,您可以创建一个List<Object>
并放入您拥有的任何内容,或者List<List<Object>>
如果您想要一个包含多个分组对象的列表,甚至可以放入一个。
仅使用 Map 并使用属性名称作为键(例如 Weight )怎么样?您可以使用所需的任何属性组合,并且将此类集合传递给查询会很方便
如果您需要更多列名类型安全,请考虑枚举映射
最好的方法是制作一个包含所有可能元素的对象。
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
}