gpt4 book ai didi

java - 将数据添加到具有无界通配符类型的集合

转载 作者:行者123 更新时间:2023-12-01 13:38:36 24 4
gpt4 key购买 nike

两者有什么区别?为什么我无法向第一个添加数据,但可以向第二个添加数据?

   HashMap<?, Object> map = new HashMap<>();
map.put(Integer.class, 1); // Error

HashMap<Class<?>, Object> map2 = new HashMap<>();
map2.put(Integer.class, 1); // Ok

最佳答案

在第一种情况下,键的类型是任何具体(即 map 的所有键都相同),因此我们不能插入除 null 之外的任何内容。 ,因为我们不知道这种类型。 (因此 map 可以保存 HashMap<Integer, Object>HashMap<String, Object> 或其他类型的值)。

在第二种情况下, key 的类型是 Classany concrete类型参数,每个键可能不同。因此,您可以在该映射中放入一个键值对,其中键是 Class 的任何实例。 ( Class<Integer>Class<String> 、...),但不能放置其他类型的键(例如 IntegerString 、...)

关于java - 将数据添加到具有无界通配符类型的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21039393/

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