Ich dachte, Java Kurzschlussauswertung hatte, doch ist diese Linie noch einen Null-Zeiger Ausnahme werfen:Java Kurzschlussauswertung
if((perfectAgent != null) && (perfectAgent.getAddress().equals(entry.getKey()))) {
In diesem Fall perfectAgent
ist null
, so möchte ich nur der gesamte Ausdruck false
zurückzukehren , aber meine App stürzt immer noch mit einer NullPointerException in dieser Zeile ab.
EDIT, allgemeine Antwort:
Da perfectAgent
ist null
, nichts rechts von der &&
ausgeführt werden soll, wie es für den Ausdruck wahr zu sein ist unmöglich. Genauer gesagt ist es unmöglich, perfectAgent.getAddress()
auszuführen, da perfectAgent
keine gültige Referenz enthält (es ist null und alle). Ich versuche, die Kurzschlussauswertung zu verwenden, um in einer separaten Anweisung nicht nach Null zu suchen, da dies die Logik schlampiger macht.
EDIT 2 (oder, ich bin ein Idiot): Ja, wie viele Dinge im Leben finden Sie die Antwort direkt nach der Ankündigung an die Welt, dass Sie ein Trottel sind. In diesem Fall hatte ich Eclipse's Autobuild ausgeschaltet, während ich etwas anderes machte und es nicht wieder anschaltete, also debuggte ich mit Klassendateien, die nicht mit meiner Quelle übereinstimmten.
Haben Sie überprüft, dass der Eintrag nicht null ist? –
Der Eintrag ist nicht null. – Donnie
Wenn 'perfectAgent'' null' ist, sollte der Rest dieser Zeile nicht ausgeführt werden. Kein Problem damit, wie es jetzt ist:/ – Joey