【发布时间】:2014-03-01 08:37:07
【问题描述】:
我想要一个Set < Map <Character, Integer> > 实例。但是我不能用new HashSet < HashMap<Character, Integer> > 实例化它。
我必须将其更改为
Set<HashMap<Character, Integer>> v = new HashSet<HashMap<Character, Integer>>();
或
Set<Map<Character, Integer>> v = new HashSet<Map<Character, Integer>>(); // I prefer this one
谁能告诉我为什么 Java 不能将 HashSet<HashMap<Character, Integer>> 转换为 Set<Map<Character, Integer>>?
【问题讨论】:
-
下面的答案是正确的,但它与您的情况并不真正相关 - 为什么要将您想要使用的
Map的实际实现类放在泛型签名中?从 Java 7 开始,您可以用更短的方式编写作业,也可以回避这个问题:Set<Map<Character, Integer>> v = new HashSet<>();