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

use*_*519 6 java generics hashmap java-5 java-6

如何实例化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);
Run Code Online (Sandbox Code Playgroud)

Dir*_*irk 18

将哈希映射声明为

Map<String,Object> params = new HashMap<String,Object>();
Run Code Online (Sandbox Code Playgroud)

你可以保留声明

public void method(Map<String, ?> params);
Run Code Online (Sandbox Code Playgroud)

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


小智 6

Java 中的所有类都扩展了 Object。因此您可以使用 Object 作为映射中的值类型,例如

Map<String, Object> params = new HashMap<String, Object>
Run Code Online (Sandbox Code Playgroud)


Pra*_*ran 5

你需要改变

Map<String,?>params=new HashMap<String,? > 
Run Code Online (Sandbox Code Playgroud)

喜欢这个

Map<String,Object>params=new HashMap<String,Object>()
Run Code Online (Sandbox Code Playgroud)

但将所有类型的对象放入单个映射中并不是一个好习惯。更好的是,您可以创建 POJO 并将其添加到地图中。