Javanull != something
との間に違いはありますか?something != null
そして、違いがある場合は、どちらを使用する必要があり、その理由は何ですか?
7 に答える
null != something
と の間に違いはありませんsomething != null
。person.getName().equals("john")
と の違いについて考えている必要があります"john".equals(person.getName())
。最初のものはNullPointerException
if getName()
returnsをスローしますnull
が、2 番目のものはスローしません。しかし、これはあなたの質問の例には当てはまりません。
おそらく、一部の言語では「bla」を返すだけでなく、「bla」を myVariable に割り当てる誤って書き込む可能性があるため、"bla" == myVariable
代わりに書き込む、いわゆる joda 条件から来ています。myVariable == "bla"
myVariable = "bla"
これを (C や C++ などの言語で) 実行するための "Yoda 条件" の理論的根拠は、この (Java) ケースには適用されないことを指摘したいだけです。
Java では、一般的な式をステートメントとして使用することは許可されていません。
something == null;
と
null == something;
コンパイルエラーになります。
something == null
との型something = null
は異なります。それぞれブール型といくつかの参照型。この場合、次の両方を意味します。if (something = null) { ... }
と
if (null = something) { ... }
コンパイルエラーになります。
実際、コンパイル エラーが発生する場合と発生しない場合の現実的な例を思いつきません。したがって、間違い防止に関しては何も達成しません。null == something
something == null
違いはありませんが、コードを読みやすくするために使用する人もいます。
パフォーマンスの観点からは違いはありません。オペレーターの両側が何らかの方法で実行されます。しかし、より読みやすいコードについては、2番目のコードの方が読みやすいようです
obj.getSomething().getAnotherThing().doSomething() != null
null != obj.getSomething().getAnotherThing().doSomething()
ただし、変数またはパラメーターを比較するだけの場合は、これの方が読みやすくなります
something != null
もちろん、これは読者の感覚に依存します。
どちらも同じで違いはありません。
Javaでは、比較する場合、常に変数を左側に配置し、値を右側に配置する必要があります...