可以将抽象类作为子类添加到HashMap中

时间:2013-02-15 00:46:54

标签: java hashmap abstract-class

我有一个采用

的方法
    exampleMethod(Map<String, Number> exMap). 

我可以使用Number的子类(如Integer或Long)调用此方法吗?所以方法类是

    A a = new A();
    a.exampleMethod(Map<"String, Integer"> intMap);

由于

2 个答案:

答案 0 :(得分:7)

不,为了做到这一点,你需要方法签名

exampleMethod(Map<String, ? extends Number> exMap)

当然,你将无法向地图添加任何值,只需阅读它们。

答案 1 :(得分:0)

我同意jtahlborn的版本,或者,你可以这样做

<T extends Number> void exampleMethod(Map<String, T> exMap) {
}