Оценка короткого замыкания Java
Я думал, что в Java была оценка короткого замыкания, но эта строка все еще выдает исключение нулевого указателя:
if( (perfectAgent != null) && (perfectAgent.getAddress().equals(entry.getKey())) ) {
В этом случаеperfectAgent
являетсяnull
так что я просто хочу, чтобы все выражение вернулосьfalse
, но мое приложение все еще падает в этой строке с исключением NullPointerException.
РЕДАКТИРОВАТЬ, общий ответ:
посколькуperfectAgent
являетсяnull
, ничего справа от&&
должно быть выполнено, так как выражение не может быть истинным. Более того, невозможно выполнитьperfectAgent.getAddress()
посколькуperfectAgent
не содержит действительной ссылки (это ноль и все). Я пытаюсь использовать оценку короткого замыкания, чтобы не проверять нулевое значение в отдельном утверждении, поскольку это делает логику более небрежной.
РЕДАКТИРОВАТЬ 2 (или, я идиот): Да, как и многие вещи в жизни, вы выясняете ответ сразу после объявления миру, что вы идиот. В этом случае я отключил автокомпиляцию Eclipse, когда делал что-то еще, и не включил его снова, поэтому я отлаживал файлы классов, которые не совпадали с моим исходным кодом.