0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

演算子の順序とnullと三項演算子と私

Posted at

intelliJさんはそもそも警告を出してくれていたんですが

log.info("xxxx:" + obj != null ? obj.toString() : null);

書きたかったことはわかります。
おそらくなんらかの型の objnull でないときだけ xxxx: hoge のようなログを出力し、 null であれば xxxx: null としたかったのでしょう。

でも

演算子の優先順位は + のほうが ? : より高いです。
その結果

  1. まっさきに "xxxx" + obj が演算される
  2. objnull でも "xxxx:null という文字列になる

ということで、この三項演算は意味をなしません。
なんなら obj のnullチェックとして機能していないので、最悪NullPointerが発生します。ていうか発生します。

全然関係ないですが

ググって出てくるJava演算子の優先順位、うそ混じってませんか?
そもそも優先順位に1〜15の番号降るのはいいとして、どちらが優先されるのか。ASCかDESCかはっきりしてもらいたい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?