私のクラスの1つに対してequalsプロパティをオーバーライドすると、そうすることができますか?このような識別子として問題の性質は、文字列、ブール、日付、セット、またはLinkedHashSetのJavaオブジェクト参照による2つのプロパティの比較
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
if (!compareProperty(identifier, other.getIdentifier())) return false;
//Continue for all properties
}
//Compares any two objects
private boolean compareProperty(Object sourceObject, Object testObject)
{
if (sourceObject == null)
{
if (testObject != null)
return false;
}
else if(!sourceObject.equals(testObject))
{
return false;
}
return true;
}
それはなぜだろうか?
申し訳ありませんが、私は正しくあなたを得ることができませんでした。 Stringクラスequals()メソッドをオーバーライドすることはできません。最終クラスです。あなたはその動作を変更することはできません。 –
私が不明な場合は、オブジェクトのデフォルトの.equalsメソッドをオーバーライドして、オブジェクトのインスタンスを正しく比較することをお勧めします。 – FooBar