私は "のような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を代入するコードをリリースすることができます。