pensé Java tenía evaluación de cortocircuito, sin embargo, esta línea todavía está lanzando un nulo excepción de puntero:Java cortocircuito evaluación
if((perfectAgent != null) && (perfectAgent.getAddress().equals(entry.getKey()))) {
En este caso perfectAgent
es null
, así que sólo quiero toda la expresión para volver false
, pero mi aplicación todavía se cuelga en esta línea con una NullPointerException.
EDITAR, respuesta general:
Desde perfectAgent
es null
, nada a la derecha de la &&
debe ser ejecutado, ya que es imposible que la expresión sea verdadera. Más al punto, es imposible ejecutar perfectAgent.getAddress()
ya que perfectAgent
no contiene una referencia válida (es nulo y todo). Estoy tratando de usar la evaluación de cortocircuito para no tener que comprobar nulo en una declaración separada ya que eso hace que la lógica sea más descuidada.
EDIT 2 (o, que soy un idiota): Sí, como muchas cosas en la vida a averiguar la respuesta correcta después de anunciar al mundo que usted es un idiota. En este caso, apagué el autobuild de Eclipse mientras hacía otra cosa y no lo volví a encender, así que estaba depurando archivos de clase que no coincidían con mi fuente.
¿Ha comprobado que la entrada no es nula? –
La entrada no es nula. – Donnie
Si 'perfectAgent' es' null', de hecho, el resto de esa línea no debería ejecutarse. No ve ningún problema con él como lo está ahora:/ – Joey