Java におけるオブジェクトの同等性を理解する
Java で 2 つのオブジェクトの同等性を比較するには、多くの場合、equals メソッドが使用されます。説明したシナリオの目的は、People オブジェクト間の比較を容易にするために、名前フィールドと年齢フィールドを持つ People クラスの平等メソッドをオーバーライドすることです。
提示された最初の実装では、年齢フィールドに平等メソッドを使用していました。整数型です。ただし、指摘したように、equals メソッドは String オブジェクトを比較するように特別に設計されています。
解決策: 整数フィールドの比較
整数フィールドを比較するには、以下を使用することをお勧めします。メソッドの代わりに == 演算子を使用します。 == 演算子は、equals メソッドを呼び出すのではなく、プリミティブ データ型の値を直接比較します。
Equals を正しく実装する
Equals メソッドの正しい実装People クラスは次のようになります:
@Override public boolean equals(Object obj) { if (obj == null) { return false; } if (obj.getClass() != this.getClass()) { return false; } final People other = (People) obj; if ((this.name == null) ? (other.name != null) : !this.name.equals(other.name)) { return false; } if (this.age != other.age) { return false; } return true; }
この中で実装:
以上がJava でオブジェクト比較の「equals」メソッドを正しくオーバーライドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。