我一直在试图摆脱对可能的空引用图的最长引用,但是似乎没有任何效果。
这是我的原始代码:
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())
答案 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);
}