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