我似乎对Java Generics有一些误解,我希望你能帮助我.我试图像这样创建一个地图:
Map<Debater, int>
Run Code Online (Sandbox Code Playgroud)
(Debater是我声明的接口)但java抱怨int,所以我做了:
Map<Debater, Integer>
Run Code Online (Sandbox Code Playgroud)
我想这是因为int不是一个类,而Integer是,这是正确的吗?
此外,现在我得到一个Debater,我需要在地图中添加1到它的值.我怎么做?
是的,你是对的.
至于递增:
map.put(debater, map.get(debater) + 1);
Run Code Online (Sandbox Code Playgroud)
自动装箱将负责对象和基元之间的"切换".
请注意,NullPointerException如果您在地图中没有此辩论者的值,则此(如注释中所述)将抛出一个.因此,如果你想做二合一,可以按如下方式重新加工:
map.put(debater, map.containsKey(debater) ? map.get(debater) + 1 : 1);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
600 次 |
| 最近记录: |