我想创建一个扩展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>>
如何解决这个问题?
答案 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>();