Как я могу исправить эту разыменование обнуляемой ошибки? - PullRequest
0 голосов
/ 08 ноября 2018

Я пытался избавиться от разыменования возможного графа нулевой ссылки долгое время, но, похоже, ничего не работает.

Это мой оригинальный код:

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 голосов
/ 08 ноября 2018

Попробуй это. Вы должны проверить на нули.

if (pluto != null && pluto.get(boxer.getName()) != null && !pluto.get(boxer.getName()).contains(boxer)) {
    pluto.get(boxer.getName()).add(boxer);
}
0 голосов
/ 08 ноября 2018

Что если ваша карта пуста?

попробуйте это:

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