重複の可能性:
null のチェック - どの順序ですか?
「null」の文字列値を検証するためのより良いアプローチとその理由を教えてください。
String user = userService.getUserName(accID);
1) if(user != null) {
..
}
2) if(null != user) {
..
}
重複の可能性:
null のチェック - どの順序ですか?
「null」の文字列値を検証するためのより良いアプローチとその理由を教えてください。
String user = userService.getUserName(accID);
1) if(user != null) {
..
}
2) if(null != user) {
..
}
違いはありません。最初のバージョンがより一般的に使用されます。
この場合は問題ではありませんが、最初のアプローチの方が一般的です。
ただし、 equals メソッドに直接入力する場合は、いわゆるヨーダ条件が優先されます。
例えば:
if("".equals(string)){
}
よりも優先されます
if(string.equals("")){
}
nullpointer例外を回避するため
この場合は好みの問題です。
他の場合、たとえば文字列リテラル/定数と比較する場合、私はこれを好みます:
if ("yourStringConstant".equals(yourVariable))
これは、yourVariable が null になる場合も処理するためです。他の方法で行うと、NullPointerException が発生します。
if (yourVariable.equals("yourStringConstant"))
2 番目のアプローチは C/C++ から来ています。if (user = null)
Cの代わりに記述するとif (user == null)
、論理エラーが発生しますが、コンパイル エラーは発生しません。このようなエラーを検出するのは非常に困難です。
ただし、変数をに割り当てることができないため、コンパイルエラーが発生しif(null = user)
ます。そのため、引数の順序を逆にすることがよく使用されます。if(null == user)
null
ただし、Java コンパイラーはif(user = null)
式を取らないため、これはあまり意味がありません。したがって、任意のアプローチを使用できます。最初のものはより広まっていますが、
最初のアプローチは、主に開発者によって使用されます。違いはないと思います。
私は両方のアプローチを見てきました。比較対象の値を最初に提示する方がよいと考える人もいます。比較対象の値を最初に確認するための選択肢が多数ある場合は、これの方がよいでしょう。
これが私の習慣であるため、私は個人的に最初のオプションを使用します。
それがあなたの質問であれば、パフォーマンスの違いはないと思います。すべての違いは、コード スタイルと読みやすさにあります。
機能的な違いはなく、前者の方が読みやすいため、前者を選択する必要があります。