gpt4 book ai didi

java - Map> myMap = new HashMap>();

转载 作者:搜寻专家 更新时间:2023-11-01 01:11:40 24 4
gpt4 key购买 nike

为什么这在 java 中不起作用,但在 java 中却起作用

Map<String, Map<String, Boolean>> myMap = new HashMap<String,Map<String,Boolean>>();

只是为了澄清下面对嵌套 HashMap 的更改显示编译器错误,而上面没有;使用 Map(不是 hashmap)

Map<String, Map<String, Boolean>> myMap = new HashMap<String,HashMap<String,Boolean>>();

最佳答案

这是因为 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!

关于java - Map<String, Map<String, Boolean>> myMap = new HashMap<String,HashMap<String,Boolean>>();,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3636834/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com