我对 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/