如何解决可空错误的取消引用?

时间:2018-11-08 05:40:11

标签: 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(boxer)) {
                pluto.get(boxer.getName()).add(boxer);
        }
}

但这也不起作用。请帮忙。

[dereference.of.nullable]取消引用可能为空的引用pluto.get(boxer.getName())

2 个答案:

答案 0 :(得分:0)

如果您的地图为空怎么办?

尝试一下:

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*/ });

答案 1 :(得分:0)

尝试一下。您需要检查是否为空。

if (pluto != null && pluto.get(boxer.getName()) != null && !pluto.get(boxer.getName()).contains(boxer)) {
    pluto.get(boxer.getName()).add(boxer);
}