2013-12-18 85 views
5

如何實例化一個HashMap來放置集合和對象?如何創建通用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); 
+2

不能使用通配符作爲一個類型參數。 –

+1

使用'Map ' –

+1

FWIW,這看起來像一個糟糕的代碼味道:它看起來應該是將這些數據存儲在類中,而不是無類型的Map。 –

回答

12

聲明散列圖作爲

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

可以保持

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

聲明,因爲它是,只要方法只有每嘗試從地圖閱讀。

+0

在創建這樣的散列表之後,如何將通用類型的對象添加到散列表中? – gromit190

2

您需要更改

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

喜歡這個

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

但它不是很好的做法,把所有類型的對象成一張地圖。最好你可以創建POJO並將其添加到地圖。

+0

看起來地圖本身應該是POJO。 –

3

Java中的所有類都擴展了Object。所以你可以在地圖中使用對象的值的類型,比如

Map<String, Object> params = new HashMap<String, Object> 
相關問題