匿名类可以使用参数扩展HashMap吗?

时间:2013-09-20 09:44:19

标签: java collections map parameters extends

我想创建一个扩展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>>

如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

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

它是地图集合(或实现地图的类)的参考。你可以像 -

那样初始化它
Collection<? extends Map<String, String>> a = new ArrayList<HashMap<String, String>>(){};

此集合对象将存储HashMap的列表。

答案 1 :(得分:2)

要创建Map的匿名实现,请使用此:

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

或(如果你想扩展HashMap)

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

不需要Collection...,这无论如何都不会起作用,因为地图不是具有该界面含义的集合(因此它不会实现{{ 1}})。

答案 2 :(得分:1)

HashMap未实施Collection

我认为你要做的只是:

Map<String, String> a = new HashMap<String, String>();