I have a doubt regarding coding standard of a null check. I want to know the difference between
if(a!=null)
and
if(null!=a)
which one is better,which one to use and why?
I have a doubt regarding coding standard of a null check. I want to know the difference between
if(a!=null)
and
if(null!=a)
which one is better,which one to use and why?
違いはありません。しかし、最初のものがより一般的です。2つ目は、その不自然な「文法」から「ヨーダ記法」とも呼ばれます。
かつて私がコーディングガイドラインを使用するプロジェクトで働いていたif (null != a)
とき、開発者は定数値が常に最初に来なければならないことを理解しやすいと考えていました(のようにCONSTANT_VALUE.equals(variable)
。それは私にとってかなり迷惑でした。
if の中に入れることができるのはブール式だけなので、Java ではどちらも同じです。これはプログラマーによるコーディング スタイルの好みに過ぎず、ほとんどのプログラマーはnull != a
.
これnull != a
は、Java や C++ などのプログラミング言語 ( Yoda Conditionsと呼ばれる) の古い慣習です。誤っ
て に書き込んでも有効なため、最初に書き込んでおくことが、このような事故を未然に防ぐためのガードになります。if (a = null)
null
a
null
どちらも同じです。コーディングスタイルによって異なります。
コンパイラの観点からは、これらはまったく同じです。ただし、最初の形式の方が読みやすいので、それを使用することをお勧めします。
ステートメントが式の結果に基づいて機能する場合、それらの間に違いはありません。したがって、uは、trueまたはfalseのいずれかを書き込むかif(a!=null)
、if(null!=a)
trueまたはfalseを生成し、結果が評価されます。
だからあなたが好きなものを書くことは重要ではありません
どちらも同じです。最初のバリアントは一般的ですが、最初の変数が null でないことがわかっている場合は、2 番目のバリアントが役立ちます
例"some value".equals(your_variable)
、一部の値は、null ではないことがわかっている任意の値にすることができます。これにより、 が の場合に NPE が回避されyour_variable
ますnull
。
String str = "somevalue";
if(str != null && str.equals("somevalue")) { }
if("somevalue".equals(str)) { }
str
ある場合とない場合の両方の条件は同じになりますnull
。