【发布时间】:2010-12-06 21:10:17
【问题描述】:
我在写完标题后阅读了这个 SO post,但仍然决定解决关于 Java 中 equals 的防错实现的问题。这是我的正常实现
@Override
public boolean equals(Object o){
if(o == null) return false;
if(o instanceof CompositePk == false) return false;
if(this == o) return true;
CompositePk that = (CompositePk)o;
return new EqualsBuilder().append(this.id, that.id)
.append(this.bucketId, that.bucketId)
.isEquals();
}
使用 Apache 的 EqualsBuilder 来完成日常工作。比这更容易的是我的 Netbean 自动生成的 equals(o) 实现
@Override
public boolean equals(Object obj){
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final TemplatesWrapper other = (TemplatesWrapper) obj;
if (this.timeAdded != other.timeAdded && (this.timeAdded == null || !this.timeAdded.equals(other.timeAdded))) {
return false;
}
return true;
}
我从 2 个差异项目中获取这些内容,但他们都试图完成相同的事情,但使用差异方法。您更喜欢哪种风格,或者您发现了哪些缺陷?
【问题讨论】:
标签: java performance equals