我想编写一个能够接受参数的方法:
而
Map<String, [the type here could be anything]>
所以,这就是我编写的代码:
/**
* Get list value from a map, empty list if there's no key matched
*/
private List<? extends Object> getListValueFromMap(Map<String, List<? extends Object>> map, String key) {
List<? extends Object> list = map.get(key);
return list == null ? EMPTY_LIST : list;
}
而
EMPTY_LIST
的定义如下:List<Object> EMPTY_LIST = Collections.unmodifiableList(new ArrayList<Object>());
问题在于当我使用以下代码调用该方法时,Eclipse告诉我出现错误,即给定参数的类型不适用。
getListValueFromMap(cityNameMap, "key");
错误信息如下:
ChinaAreaResource
类中的方法getListValueFromMap(Map<String,List<? extends Object>>, String)
对于参数(Map<String,List<City>>, String)
不适用。
我在哪里出错了?
这是 cityNameMap
的定义:
/** map city's name to city list */
private Map<String, List<City>> cityNameMap;
citiNameMap
是如何定义的? - Konstantin YovkovMap<String, List<? extends Object>> cityNameMap = null;
运行良好。 - Thrash BeanCollections.unmodifiableList(new ArrayList<Object>());
的意义是什么?如果你已经知道Collections
,为什么不使用Collections.emptyList()
呢? - Holger