Ocena zwarcia w języku Java

Myślałem, że Java ma ocenę zwarć, ale ta linia nadal rzuca wyjątek zerowego wskaźnika:

if( (perfectAgent != null) && (perfectAgent.getAddress().equals(entry.getKey())) ) {

W tym przypadkuperfectAgent jestnull, więc chcę tylko, aby całe wyrażenie powróciłofalse, ale moja aplikacja nadal zawiesza się w tej linii z wyjątkiem NullPointerException.

EDIT, ogólna odpowiedź:

OdperfectAgent jestnull, nic na prawo od&& powinno być wykonane, ponieważ niemożliwe jest, aby wyrażenie było prawdziwe. Co więcej, niemożliwe jest wykonanieperfectAgent.getAddress() odperfectAgent nie zawiera poprawnego odwołania (jest puste i wszystkie). Próbuję użyć oceny zwarcia, aby nie sprawdzać wartości null w oddzielnej instrukcji, ponieważ powoduje to, że logika jest bardziej niechlujna.

EDIT 2 (lub jestem idiotą): Tak, jak wiele rzeczy w życiu, wymyślasz odpowiedź zaraz po ogłoszeniu światu, że jesteś kretynem. W tym przypadku wyłączyłem autobuild Eclipse podczas robienia czegoś innego i nie włączyłem go ponownie, więc debugowałem pliki klas, które nie pasowały do ​​mojego źródła.

questionAnswers(7)

yourAnswerToTheQuestion