1

我想创建扩展的匿名类Map。我尝试:

Collection<? extends Map<String, String> a = new HashMap<String, String>(){};

接收错误:

Type mismatch: cannot convert from new HashMap<String,String>(){} to Collection<? extends Map<String,String>>

如何解决这个问题?

4

3 回答 3

2
 Collection<? extends Map<String, String> a ;

它是映射集合(或实现映射的类)的引用。你可以像这样初始化它 -

Collection<? extends Map<String, String>> a = new ArrayList<HashMap<String, String>>(){};

这个集合对象将存储HashMap.

于 2013-09-20T09:48:02.703 回答
2

要创建一个匿名实现,请Map使用:

 Map<String, String> a = new Map<String, String>() { ... }

或(如果你想扩展 HashMap)

 Map<String, String> a = new HashMap<String, String>() { ... }

没有必要,Collection...而且无论如何这都行不通,因为地图不是具有该接口含义的集合(因此它没有实现Collection)。

于 2013-09-20T09:48:11.990 回答
1

HashMap不执行Collection

我认为您要做的只是:

Map<String, String> a = new HashMap<String, String>();
于 2013-09-20T09:48:44.813 回答