【发布时间】:2015-06-01 11:07:27
【问题描述】:
我想投一个哈希图:
我的代码:
public class Example {
private HashMap<MyItem, Integer> items =new HashMap<MyItem, Integer>();
@Override
public Map<Item, Integer> gItems() {
return this.items;
}
}
MyItem 是一个继承自 Item 类的类。
这段代码给我一个编译错误。
由于多种原因,我无法使用该解决方案来更改返回方法的类型。
那么我该如何将我的 HashMap<MyItem, Integer> 转为 Map<Item, Integer>
我得到的错误是:
类型不匹配:无法从HashMap<MyItem, Integer> 转换为Map<Item, Integer>
编译器要求我更改返回方法的类型。
谢谢。
【问题讨论】:
-
请发布错误。
-
谷歌“为什么泛型不是协变的?”
-
问题不是
HashMap -> Map,而是<MyItem> -> <Item>。它们之间有什么关系?也许你可以使用有界通配符 -
我说 MyItem 继承自 Item
标签: java dictionary data-structures collections hashmap