我们使用HyperJAXB生成了一些(很多)类.所有类都实现了Equals和HashCode,并具有下面的实现风格.看来这个代码永远不会执行..有什么特别的原因我们需要这个代码吗?如果可以的话,我正在寻求简化课程.
public boolean equals(Object object) {
if (!(object instanceof MyClass)) {
return false;
}
if (this == object) {
return true;
}
final EqualsBuilder equalsBuilder = new JAXBEqualsBuilder();
equals(object, equalsBuilder);
return equalsBuilder.isEquals();
}
public void hashCode(HashCodeBuilder hashCodeBuilder) {
hashCodeBuilder.append(this.getValue());
hashCodeBuilder.append(this.getId());
}
public int hashCode() {
final HashCodeBuilder hashCodeBuilder = new JAXBHashCodeBuilder();
hashCode(hashCodeBuilder);
return hashCodeBuilder.toHashCode();
}
Run Code Online (Sandbox Code Playgroud)
如果您的应用程序或JAXB基础结构曾将这些对象的实例放入集合或映射中,则很可能会使用equals和hashCode方法.
编辑
我在hyperjaxb3文档中找到了以下内容:
生成equals和hashCode方法
虽然这不是JPA规范直接要求的,但仍建议在实体类中正确实现equals和hashCode方法.[...]使用Hyperjaxb3,您可以配置,等于和哈希码构建器将被使用或关闭equals和hashCode生成关闭.
因此应该可以关闭这些方法的生成,但hyperjaxb3设计师似乎在说最好不要这样做.
您可以使用
<generateEquals>false</generateEquals>
<generateHashCode>false</generateHashCode>
Run Code Online (Sandbox Code Playgroud)
在你的maven-hyperjaxb3-plugin配置中,如果要禁用equals/hashCode方法生成.但是我不建议.
真诚的,"hyperjaxb3设计师".:)
| 归档时间: |
|
| 查看次数: |
707 次 |
| 最近记录: |