Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何修复此可为null的错误的取消引用?_Java_Null_Dereference - Fatal编程技术网

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。