2011-11-17 20 views
6

Sto ricevendo NullPointerException dalla riga sottostante a volte.Operatore ternario e imprevisto NullPointerException

System.out.println("Date::"+ row != null ? row.getLegMaturityDate() : "null"); 

Dopo aver aggiunto le parentesi, va bene.

System.out.println("Date::"+ (row != null ? row.getLegMaturityDate() : "null")); 

Si prega di chiarire il comportamento. Grazie in anticipo.

+0

Ecco perché provo a limitare il più possibile le dichiarazioni/espressioni di nidificazione. Se dividessi la frase in due, non avresti quel problema. – helpermethod

risposta

13

"Date::" + row non è mai nullo, anche se a volte lo è row.

Cioè, "Date::"+ row != null equivale a ("Date::"+ row) != null che è sempre vero.

+0

Per aggiungere a questo, si dovrebbe dare un'occhiata a http://stackoverflow.com/questions/2137690/java-operator-precedence-guidelines –

+0

Grazie Christoffer. fatto. @ Mike, grazie per il link, informativo. – Vaandu