intelliJさんはそもそも警告を出してくれていたんですが
log.info("xxxx:" + obj != null ? obj.toString() : null);
書きたかったことはわかります。
おそらくなんらかの型の obj
が null
でないときだけ xxxx: hoge
のようなログを出力し、 null
であれば xxxx: null
としたかったのでしょう。
でも
演算子の優先順位は +
のほうが ? :
より高いです。
その結果
- まっさきに "xxxx" + obj が演算される
-
obj
がnull
でも"xxxx:null
という文字列になる
ということで、この三項演算は意味をなしません。
なんなら obj
のnullチェックとして機能していないので、最悪NullPointerが発生します。ていうか発生します。
全然関係ないですが
ググって出てくるJava演算子の優先順位、うそ混じってませんか?
そもそも優先順位に1〜15の番号降るのはいいとして、どちらが優先されるのか。ASCかDESCかはっきりしてもらいたい。