ho pensato Java avuto la valutazione di corto circuito, ma questa linea è ancora lanciando un'eccezione di puntatore nullo:Java corto circuito di valutazione
if((perfectAgent != null) && (perfectAgent.getAddress().equals(entry.getKey()))) {
In questo caso perfectAgent
è null
, quindi voglio solo l'intera espressione per tornare false
, ma la mia app si arresta ancora su questa linea con una NullPointerException.
EDIT, risposta generale:
Dal perfectAgent
è null
, nulla alla destra del &&
dovrebbe essere eseguito, come è impossibile per l'espressione per essere vero. Più precisamente, è impossibile eseguire perfectAgent.getAddress()
poiché perfectAgent
non contiene un riferimento valido (essendo null e tutto). Sto tentando di utilizzare la valutazione di cortocircuito per non dover controllare null in un'istruzione separata in quanto ciò rende la logica più sciatta.
EDIT 2 (o, sono un idiota): Sì, come molte cose nella vita, si capisce la risposta subito dopo aver annunciato al mondo che sei un deficiente. In questo caso, ho disattivato l'autobuild di Eclipse mentre facevo qualcos'altro e non lo ho riattivato, quindi stavo eseguendo il debug dei file di classe che non corrispondevano alla mia fonte.
Avete controllato che la voce non sia nulla? –
L'inserimento non è nullo. – Donnie
Se 'perfectAgent' è' null' allora il resto di quella riga non dovrebbe essere eseguito. Non vedo alcun problema con esso com'è ora:/ – Joey