2013-12-18 3 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

use 'Map ' –

+1

FWIW, это похоже на плохой запах кода: похоже, что вы должны хранить эти данные в классе, а не в нетипизированной «карте». –

ответ

12

Объявите хэш-карту, как

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

Вы можете оставить объявление о

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

, как это, до тех пор, как метод только каждый пытается читать с карты.

+0

После создания хэш-карты, как это, как добавить объект универсального типа в hashmap? – 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>