當爲我的某個類重寫equals屬性時,是否可以這樣實現它?如標識有問題的性質可能是字符串,布爾日期,設置,或LinkedHashSetJava按對象引用比較兩個屬性
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()方法,它是一個final類。你不能修改它的行爲。 – 2012-01-12 07:45:59
對不起,如果我不清楚,建議您爲對象覆蓋默認的.equals方法,以便您的對象正確比較對象的實例。 – FooBar 2012-01-12 07:51:01