Avaliação de curto-circuito em Java
Eu pensei que Java teve avaliação de curto-circuito, mas esta linha ainda está lançando uma exceção de ponteiro nulo:
if( (perfectAgent != null) && (perfectAgent.getAddress().equals(entry.getKey())) ) {
Nesse casoperfectAgent
énull
, então eu só quero que toda a expressão retornefalse
, mas meu aplicativo ainda está travando nesta linha com um NullPointerException.
EDIT, resposta geral:
Desde aperfectAgent
énull
, nada à direita do&&
deve ser executado, pois é impossível que a expressão seja verdadeira. Mais ao ponto, é impossível executarperfectAgent.getAddress()
Desde aperfectAgent
não contém uma referência válida (sendo nulo e tudo). Eu estou tentando usar avaliação de curto-circuito para não ter que verificar nulo em uma instrução separada, pois isso torna a lógica mais desleixada.
EDIT 2 (ou, eu sou um idiota): Sim, como muitas coisas na vida, você descobre a resposta logo após anunciar ao mundo que você é um idiota. Nesse caso, eu desliguei o autobuild do Eclipse enquanto fazia outra coisa e não o reativava, então estava depurando arquivos de classe que não correspondiam à minha fonte.