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