当覆盖其中一个类的equals属性时,是否可以实现它?有问题的属性(如标识符)可以是String,boolean,Date,Set或LinkedHashSet
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;
}
为什么或为什么不呢?
答案 0 :(得分:2)
这确实应该做什么。
但是,我不会重新发明轮子。考虑使用Objects.equals(在Java 7中)或Objects.equal(在Guava中)或EqualsBuilder(在apache commons-lang中)。