/ / javaの“ anObject!= null”と“ null!= anObject”の違いは何ですか? [複製] - java

javaの“ anObject!= null”と“ null!= anObject”の違いは何ですか? [複製] - java

私は "のようなJavaコードのテストステートメントを書いていた"anObject!= null「しかし、これを逆にする人もいます」null!= anObject"では、両者の違いは何でしょうか?そしてどちらがJavaのより良い方法ですか?

回答:

回答№1の場合は7

彼らの推論は、あなたが誤って !それから、あなたは比較の代わりに代入を持っています。

anObject = null にnullを割り当てる anObject、while null = anObject コンパイラエラーが発生します。


回答№2の場合は3

これはヨーダの状態に多少関係します。

"the force".equals(myString);

myStringがnullの場合、nullポインタを回避します。


答え№3の2

それは人々が表現を比較する方法のスタイルです。

使ってはいけません null != anObject として null は定数であり、 ヨーダ状態.

常に変数を左側に、定数を右側に配置してください。


回答№4の場合は1

コンパイルされたコードの観点からは違いはありません。

しかしながら、妄想的プログラマの観点からは、恐ろしい代入バグを作ることを妨げることがあります。

例えば誤入力した場合:

null = myObject

定数に代入できないため、コンパイラエラーが発生します。

あなたが誤入力した場合ただし:

myObject = null

コンパイラは文句を言いません。そして、あなたはnullをテストする代わりにあなたのObjectにnullを代入するコードをリリースすることができます。