2

重複の可能性:
myString.equals( "aString");がなぜですか。「aString」.equals(myString);とは異なりますか?

一部のJavaコーディング"string to compare".equals(input_value)の代わりに表示されるのはなぜですか?input_value.equals("string to compare")

長所と短所は何ですか?

ありがとうございました

4

2 に答える 2

7

"string to compare".equals(input_value) nullチェックの必要性を回避します。

input_valueがnullの場合、もう1つはNPWをスローする可能性があります。実際、多くのIDEはこれについて警告し、入力せずにコードを変更できるようにします。

于 2013-01-18T03:39:44.383 に答える
1

結果は変わらないはずです。

しかし、技術的にはそうかもしれません。

最初のケースでは、equals()メソッドとhashCode()メソッドがStringクラスから呼び出されます。

2番目のケースでは、equals()メソッドとhashCode()メソッドがinput_valueのクラスから呼び出されます。

また、input_valueがnullの場合、最初のケースでは結果は常にfalseになりますが、2番目のケースではNullPointerExceptionが発生します。


どちらが好ましいかを言うのに十分な情報ではありません。それはあなたの目的に依存します。

最初のケースでは、NullPointerExceptionを回避します。

2番目のケースでは、(input_valueのクラスを定義する場合)オブジェクトの同等性を定義する方法(equals()およびhashCode()メソッド)をより細かく制御できます。

于 2013-01-18T03:42:53.370 に答える