Java 如何修复此可为null的错误的取消引用?
我一直在努力消除可能的空引用图的解引用,但似乎没有任何效果 这是我的原始代码:Java 如何修复此可为null的错误的取消引用?,java,null,dereference,Java,Null,Dereference,我一直在努力消除可能的空引用图的解引用,但似乎没有任何效果 这是我的原始代码: if (!pluto.get(boxer.getName()).contains(boxer)) { pluto.get(boxer.getName()).add(boxer); } 冥王星是私人最终地图>冥王星 我也试过了 if (pluto.get(boxer.getName()) != null) { if (!pluto.get(boxer.getName()).contains(bo
if (!pluto.get(boxer.getName()).contains(boxer)) {
pluto.get(boxer.getName()).add(boxer);
}
冥王星是私人最终地图>冥王星
我也试过了
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())如果地图为空怎么办 试试这个:
if (isNull(pluto)) { // import static java.util.Objects.isNull;
return; // to minimise nesting
}
Optional.ofNullable(pluto.get(boxer.getName()))
.filter(value -> !value.isEmpty())
.ifPresent(value -> { /*do whatever you want*/ });
试试这个。您需要检查空值
if (pluto != null && pluto.get(boxer.getName()) != null && !pluto.get(boxer.getName()).contains(boxer)) {
pluto.get(boxer.getName()).add(boxer);
}
pluto.get(boxer.getName())返回什么?能否共享完整代码?它返回映射到的字符串集。我不知道为什么,但堆栈溢出删除了我的图形实现。这是私有的最终映射plutoThere可能有两种可能性一种映射为null,另一种可能为boxer.getName为null。您还可以通过运行代码验证是否为调试模式,以便检查元素并检查得到null的内容。在调用“if(pluto.get(boxer.getName())之前,您需要检查pluto是否为null或boxer是否为null!=null)”。如果其中任何一个为null,它将抛出NullpointerException。