質問: 42) {...}`のような記述に対して警告を発します。また、優れたエディタで適切なlinterを使用していれば、コンパイルすることも無く、おかしな書き方をしていることを警告してくれるでしょう。言語によっては、代入が値を返さない、if文の条件式は真偽値しか受けてつけない、などの動きとすることで防止する物もあります。 しかし、JavaのNullPointerEcextion防止については、そのような防止をしてくれるわけではありません。かといって、毎回次のように書くことも冗長だと思われます。 ``` if (str != null && str.equals("42")) { // ... } ``` そもそもnull安全では無いJavaを使うのが悪いというもっともな意見もあるかと思いますが、このように言語や使いどころによってはヨーダ記法は未だに有用では無いのでは無いかと思っています。 上記のJavaのNullPointerEcextion防止のように、適当な回避策が無いため、ヨーダ記法が有用になる場面は他にあるのでしょうか?それとも、Javaの書き方も実は他に良い回避策があって、ヨーダ記法が有用になる場面など既に存在しないと言えたりするのでしょうか?ヨーダ記法を使うべきか、使うのであれば、どの言語のどのようなときなのかを教えていただきたいと思います。 --- この質問は、c - ヨーダスタイルについて - スタック・オーバーフローを見かけて、回答を書こうとしたときの疑問からです。該当の質問は主観的とされて閉じられていますが、ヨーダ記法の是非は問うべきとして、今回の質問をしました。なお、私自身の回答は「代入演算子に`=`を使うのが悪い」という斜め下の結論になったため、投稿はしていません。
回答: 本質の回答にはなりませんが、Java7からObjects.equalsというメソッドが登場したので、nullチェックせず同値判定できるようになりました。