gpt4 book ai didi

java - 如何自定义Eclipse生成的hashCode()和equals()?

转载 作者:太空狗 更新时间:2023-10-29 22:41:25 26 4
gpt4 key购买 nike

建议,有时是必要的,表示值的类(值类)覆盖hashCode()equals() [和可选的 toString()] 方法。这些方法返回的值取决于类及其父类(super class)的全部或部分成员变量。要正确实现它们,您必须了解一些关于散列 的理论以及一些代数和集合论(不要太多,几乎所有内容都在 javadocs 对于这些方法和 Effective Java 形式 Josh Bloch。)
在大多数情况下,此方法的实现遵循模板,IDE(如 Eclipse JDT)包含生成它们的工具。然而,工具生成器不能做任何假设,只能使用语言和标准库中可用的结构来生成这些方法。因此,这些方法通常看起来非常难看。

实现这些方法的另一种方法是使用像 Apache 的 (commons-lang) HashCodeBuilderEqualsBuilderToStringBuilder 这样的库。使用这些实用程序,可以实现他们自己的 hashCode()equals() 方法,这些方法看起来要好得多。

我的问题是关于结合这两种方法。我希望能够自定义 Eclipse 的 hashCode()equals() 生成器,以便使用 HashCodeBuilder 和 friend 生成它们。是否可以(以及如何)在不调整 JDT 的情况下做到这一点?只编写将覆盖默认实现的小插件(但不更改 JDT 代码)。

谢谢。

最佳答案

应要求将我的评论作为答案发布:Commonclipse ,一个促进 Apache Commons 使用的 Eclipse 插件,做你想做的事。

警告:我最近没有使用过这个插件,这就是为什么我最初是作为评论而不是作为答案发布的。

关于java - 如何自定义Eclipse生成的hashCode()和equals()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6255210/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com