【发布时间】:2019-04-11 15:05:38
【问题描述】:
我一直在努力摆脱可能的空引用图的取消引用,但似乎没有任何效果。
这是我的原始代码:
if (!pluto.get(boxer.getName()).contains(boxer)) {
pluto.get(boxer.getName()).add(boxer);
}
其中 pluto 是私有 final Map> pluto;
我也试过了
if (pluto.get(boxer.getName()) != null) {
if (!pluto.get(boxer.getName()).contains(boxer)) {
pluto.get(boxer.getName()).add(boxer);
}
}
但这也行不通。请帮忙。
[dereference.of.nullable] 可能为空的引用 pluto.get(boxer.getName()) 的解引用
【问题讨论】:
-
什么 pluto.get(boxer.getName()) 返回?
-
能否分享完整代码?
-
它返回它映射到的字符串集。我不知道为什么,但堆栈溢出删除了我的图表实现。它是私有的最终 Map
> pluto -
可能有两种可能性,一种地图为空,另一种可能是 boxer.getName 为空,您也可以通过运行代码来验证是否处于调试模式,这样您就可以检查元素并检查什么是空的。
-
在调用“if (pluto.get(boxer.getName()) != null)”之前,您需要检查 pluto 是否为 null 或 boxer 是否为 null。如果其中任何一个为 null,则会抛出 NullpointerException。
标签: java null dereference