java - 在 Java 中映射泛型

标签 java generics

我对 Java 泛型似乎有些误解,希望您能帮助我。我试着像这样创建一个 map :

Map<Debater, int>

(Debater 是我声明的接口(interface))但是 java 提示 int,所以我做了:

Map<Debater, Integer>

我想这是因为 int 不是一个类而 Integer 是,这对吗?

此外,现在我得到了一个 Debater,我需要将其在 map 中的值加 1。我该怎么做?

最佳答案

是的,你是对的。

至于递增:

map.put(debater, map.get(debater) + 1);

Autoboxing将负责对象和原语之间的“切换”。

请注意,如果您在 map 中还没有此辩论者的值,这(如评论中所述)将抛出 NullPointerException。所以如果想做二合一,可以改成如下:

map.put(debater, map.containsKey(debater) ? map.get(debater) + 1 : 1);

关于java - 在 Java 中映射泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2341831/

相关文章:

java - 在 HoneyComb 的特定部分使用 SectionIndexer 时,滚动条消失

java - 用于在 hdfs 中列出目录的主机和端口

java - 将函数作为字符串传递的正确方法

c# - 继承和共享静态字段

c# - 对 IList 和 IEnumerable 使用泛型逆变

Java 泛型 - 类型转换问题

java - 我应该如何修复这个字体加载器?

java - 递归通用用法

java - 调用对可能实现该接口(interface)的对象进行接口(interface)约束的泛型方法

java - 使用 gradlew 和自定义 JRE 运行单元测试