Nim*_*sky 4 java nested hashmap map
为什么这不适用于java,但确实如此
Map<String, Map<String, Boolean>> myMap = new HashMap<String,Map<String,Boolean>>();
Run Code Online (Sandbox Code Playgroud)
只是为了澄清下面对嵌套HashMap的更改显示了编译器错误,而上面并没有; 用地图(不是hashmap)
Map<String, Map<String, Boolean>> myMap = new HashMap<String,HashMap<String,Boolean>>();
Run Code Online (Sandbox Code Playgroud)
Pét*_*rök 10
这是因为在Java泛型是不变的,也就是说,即使B类是A,一个Collection<B>是不是一个Collection<A>.
这是有充分理由的.如果你的例子合法,那么这是可能的:
Map<String, HashMap<String, Boolean>> myHashMap = new HashMap<String,HashMap<String,Boolean>>();
Map<String, Map<String, Boolean>> myMap = myHashMap;
myMap.put("oops", new TreeMap<String, Boolean>());
HashMap<String, Boolean> aHashMap = myMap.get("oops"); // oops - ClassCastException!
Run Code Online (Sandbox Code Playgroud)
在第二种情况下myMap是一个映射,其中键是类型String,值是类型Map<String, Boolean>.HashMap<String, Boolean>不是Map<String, Boolean>它实现它.因此,这将编译:
Map<String, ? extends Map<String, Boolean>> myOtherMap =
new HashMap<String,HashMap<String,Boolean>>();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21548 次 |
| 最近记录: |