-1

重複の可能性:
null のチェック - どの順序ですか?

「null」の文字列値を検証するためのより良いアプローチとその理由を教えてください。

String user = userService.getUserName(accID);

1) if(user != null) {
    ..
   }

2) if(null != user) {
    ..
   }
4

7 に答える 7

2

違いはありません。最初のバージョンがより一般的に使用されます。

于 2012-10-11T11:15:58.487 に答える
2

この場合は問題ではありませんが、最初のアプローチの方が一般的です。

ただし、 equals メソッドに直接入力する場合は、いわゆるヨーダ条件が優先されます。

例えば:

if("".equals(string)){
}

よりも優先されます

if(string.equals("")){
}

nullpointer例外を回避するため

于 2012-10-11T11:17:35.253 に答える
0

この場合は好みの問題です。

他の場合、たとえば文字列リテラル/定数と比較する場合、私はこれを好みます:

if ("yourStringConstant".equals(yourVariable))

これは、yourVariable が null になる場合も処理するためです。他の方法で行うと、NullPointerException が発生します。

if (yourVariable.equals("yourStringConstant"))
于 2012-10-11T11:19:41.817 に答える
0

2 番目のアプローチは C/C++ から来ています。if (user = null)Cの代わりに記述するとif (user == null)、論理エラーが発生しますが、コンパイル エラーは発生しません。このようなエラーを検出するのは非常に困難です。

ただし、変数をに割り当てることができないため、コンパイルエラーが発生しif(null = user)ます。そのため、引数の順序を逆にすることがよく使用されます。if(null == user)null

ただし、Java コンパイラーはif(user = null)式を取らないため、これはあまり意味がありません。したがって、任意のアプローチを使用できます。最初のものはより広まっていますが、

于 2012-10-11T11:23:18.307 に答える
0

最初のアプローチは、主に開発者によって使用されます。違いはないと思います。

于 2012-10-11T11:16:44.087 に答える
0

私は両方のアプローチを見てきました。比較対象の値を最初に提示する方がよいと考える人もいます。比較対象の値を最初に確認するための選択肢が多数ある場合は、これの方がよいでしょう。

これが私の習慣であるため、私は個人的に最初のオプションを使用します。

それがあなたの質問であれば、パフォーマンスの違いはないと思います。すべての違いは、コード スタイルと読みやすさにあります。

于 2012-10-11T11:17:01.873 に答える
0

機能的な違いはなく、前者の方が読みやすいため、前者を選択する必要があります。

于 2012-10-11T11:17:03.770 に答える