Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我们是否需要HyperJAXB生成的hashCode&;等于方法?_Java_Hyperjaxb - Fatal编程技术网

Java 我们是否需要HyperJAXB生成的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

我们已经使用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();
    }

如果您的应用程序或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-我看不到任何相似性。。。我也帮不了你。