2011-11-17 16 views
6

NullPointerExceptionが以下の行から時々得られます。3進演算子と予期しないNullPointerException

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

大括弧を付けた後は問題ありません。

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

私にその動作を明確にしてください。前もって感謝します。

+0

これは、ネスティングステートメント/式を可能な限り制限しようとする理由です。ステートメントを2つに分割すると、その問題は発生しません。 – helpermethod

答えて

13

"Date::" + rowはnullではありませんが、rowが時々あります。

つまり、"Date::"+ row != nullは、常にtrueです。("Date::"+ row) != nullに相当します。

+0

これに追加するには、http://stackoverflow.com/questions/2137690/java-operator-precedence-guidelines –

+0

Thanks Christofferをご覧ください。とった。 @マイク、有益なリンク、ありがとう。 – Vaandu

関連する問題