如何创建通用HashMap来插入集合和对象?

时间:2013-12-18 15:38:14

标签: java generics hashmap java-6 java-5

如何实例化HashMap以放置集合和对象?

//it's wrong
Map<String,?>params=new HashMap<String,? >
List<Person> lstperson=getPerson();
params.put("person",lstperson);
params.put("doc",objectDoc);
params.put("idSol",new Long(5));
service.method(params);

//method

public void method(Map<String, ?> params);

4 个答案:

答案 0 :(得分:16)

将哈希映射声明为

Map<String,Object> params = new HashMap<String,Object>();

您可以保留

的声明
public void method(Map<String, ?> params);

实际上,只要该方法只尝试从地图中读取。

答案 1 :(得分:3)

您需要更改

Map<String,?>params=new HashMap<String,? > 

喜欢这个

Map<String,Object>params=new HashMap<String,Object>()

但将所有类型的对象放入单个地图并不是一种好的做法。更好的是你可以创建POJO并将其添加到地图中。

答案 2 :(得分:3)

Java中的所有类都扩展了Object。所以你可以在地图中使用Object作为值类型,比如

Map<String, Object> params = new HashMap<String, Object>

答案 3 :(得分:0)

我在这里是科特林的替代人

您可以在kotlin中将其声明为:-

val map: Map<String, Any?>