Java 我们是否需要HyperJAXB生成的hashCode&;等于方法?
我们已经使用HyperJAXB生成了一些(很多)类。所有类都实现Equals和HashCode,并具有以下实现样式。似乎从未执行过此代码。。我们需要这个代码有什么特别的原因吗?如果可以的话,我希望简化课程Java 我们是否需要HyperJAXB生成的hashCode&;等于方法?,java,hyperjaxb,Java,Hyperjaxb,我们已经使用HyperJAXB生成了一些(很多)类。所有类都实现Equals和HashCode,并具有以下实现样式。似乎从未执行过此代码。。我们需要这个代码有什么特别的原因吗?如果可以的话,我希望简化课程 public boolean equals(Object object) { if (!(object instanceof MyClass)) { return false; } if (this == objec
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();
}
如果您的应用程序或JAXB基础设施曾经将这些对象的实例放入集合或映射中,那么很有可能会使用
equals
和hashCode
方法
编辑
我在中发现了以下内容:
生成equals和hashCode方法
尽管JPA规范并不直接要求这样做,但仍然建议在实体类中正确实现equals和hashCode方法。[…]使用Hyperjaxb3,您可以配置将使用的等于和哈希代码生成器[…]或关闭等于和哈希代码生成
因此,应该可以关闭这些方法的生成,但hyperjaxb3设计者似乎在说最好不要这样做。如果您的应用程序或JAXB基础设施曾经将这些对象的实例放入集合或映射中,然后很有可能会使用
equals
和hashCode
方法
编辑
我在中发现了以下内容:
生成equals和hashCode方法
尽管JPA规范并不直接要求这样做,但仍然建议在实体类中正确实现equals和hashCode方法。[…]使用Hyperjaxb3,您可以配置将使用的等于和哈希代码生成器[…]或关闭等于和哈希代码生成
因此,应该可以关闭这些方法的生成,但hyperjaxb3设计者似乎在说最好不要这样做。您可以使用
<generateEquals>false</generateEquals>
<generateHashCode>false</generateHashCode>
false
错误的
如果要禁用equals/hashCode方法生成,请在maven-hyperjaxb3-plugin配置中。不过,我不推荐
您诚挚的“hyperjaxb3设计师”: 您可以使用
<generateEquals>false</generateEquals>
<generateHashCode>false</generateHashCode>
false
错误的
如果要禁用equals/hashCode方法生成,请在maven-hyperjaxb3-plugin配置中。不过,我不推荐
您诚挚的“hyperjaxb3设计师”: 相信它会将他们放入
列表中。。但是您可以在所有列表中存储重复项,不是吗?为什么它会称之为平等?和List
-s不要散列任何内容,是吗?如果有东西调用List.contains(…)
,将调用equals
方法。@CodeMed-我看不到任何相似性。。。不管怎样,我也帮不了你。相信这会把他们放到列表中。。但是您可以在所有列表中存储重复项,不是吗?为什么它会称之为平等?和List
-s不要散列任何内容,是吗?如果有东西调用List.contains(…)
,将调用equals
方法。@CodeMed-我看不到任何相似性。。。我也帮不了你。