ホームページ >Java >&#&チュートリアル >Javaでequals()メソッドを適切にオーバーライドするにはどうすればよいですか?
Java でquals() メソッドをオーバーライドする方法
equals() メソッドのオーバーライドは、カスタムの等価比較動作をカスタマイズするために不可欠です。 Java のオブジェクト。これを効果的に行うための包括的なガイドを次に示します。
問題:
指定されたスニペットでは、equals( を使用して年齢フィールドを比較しようとしたときにエラーが発生しました。 )、String オブジェクト用に設計されているためです。整数値には == 演算子の使用が必要です。
解決策:
このエラーを解決するには、== 演算子を使用して年齢などのプリミティブ データ型を比較します。変更されたコード スニペットは次のとおりです。
public boolean equals(People other){ boolean result; if((other == null) || (getClass() != other.getClass())){ result = false; } // end if else{ People otherPeople = (People)other; result = name.equals(other.name) && age == other.age; } // end else return result; } // end equals
追加の説明:
1.オーバーライド プロセス:
2. Null チェック:
3.クラスの比較:
4.カスタム比較ロジック:
例:
提供された例では、名前と年齢の両方を比較して、Person クラスの equals() をオーバーライドします。等価:public boolean equals(Object obj) { if (obj == null) { return false; } if (obj.getClass() != this.getClass()) { return false; } final Person other = (Person) obj; if ((this.name == null) ? (other.name != null) : !this.name.equals(other.name)) { return false; } if (this.age != other.age) { return false; } return true; }
結論:
equals() メソッドをオーバーライドすると、カスタム オブジェクトに対してカスタマイズされた等価比較を定義できるようになります。提供されている手順と例に注意深く従うことで、オブジェクトを特定の属性に基づいて効果的に比較できます。以上がJavaでequals()メソッドを適切にオーバーライドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。