【问题标题】:Error with no HashCode, Equals eclipse没有 HashCode 的错误,等于 Eclipse
【发布时间】:2010-09-16 20:46:35
【问题描述】:

我正在寻找一个非常具体的 eclipse 插件,它会告诉我我的项目中的一个类是否没有实现 hashCode 或/和 equals 方法。

有人知道这样的插件吗?

谢谢

【问题讨论】:

  • 所有类都实现equals/hashCode(参见Object)。不是每个类都需要重写 equals/hashCode。如果正在散列基于其状态具有相等性的可变对象,请小心。如果状态发生变化,那么等式就会发生变化——从地图中检索时非常糟糕。

标签: java eclipse plugins equals hashcode


【解决方案1】:

或者你可以使用findbugs

规则HE_EQUALS_NO_HASHCODE 做你想做的事,还有plugin for eclipse

【讨论】:

  • HE_EQUALS_NO_HASHCODE 真的能满足要求吗?从这个问题来看,听起来他希望 every 类实现 equals/hashCode - 这不仅仅是检查一个存在和另一个不存在。可能是这个问题的措辞不好。
  • 如果你是对的......我投票赞成你评论的最后一部分(“措辞不好”的问题);)
  • 我会认为'或/和'位已经足够清楚了,如果它说'和/或'也许你会更开心?感谢您的回复,尽管我正在研究 Checkstyle 和 findbugs,看看哪个是最好的。
  • 我希望他不希望每个类都实现两者。这是一个愚蠢的编码标准(遗憾的是,一些公司确实使用),它迫使无用的代码被复制到所有地方。
  • 你的意思是一个愚蠢的编码标准,好的做法?显然有时您不需要它,但是您可以选择它们,如果您有复杂的类,那么您应该实现上述所有内容。
【解决方案2】:

你不能使用Checkstyle plugin 并编写你自己的Checkstyle 规则吗? (有一个 Checkstyle 规则用于覆盖 equals 但不是 hashCode,但没有什么可以确保所有类都实现了两者,AFAIK。)

【讨论】:

  • 最后我使用了 Checkstyle 插件,并写了自己的规则。我将对其进行配置,以便它给我的信息不多(不希望某些类同时实现两者等)。谢谢
猜你喜欢
  • 2021-12-17
  • 1970-01-01
  • 2014-08-13
  • 1970-01-01
  • 2022-11-16
  • 2014-02-09
  • 1970-01-01
  • 1970-01-01
  • 2013-09-13
相关资源
最近更新 更多