我遇到了一些第三方代码,它重写了equals()方法但没有重写hashCode()方法。如果我不把这些对象用作Map键,那么这样做是无害的吗?
当然,我可以为hashCode(在几个对象中)添加重写,但这样做会使我在接收升级时每次都要增加更多的工作。
除了Map之外,您还需要检查:
如果您在ORM中使用此类的实例,请参阅更多信息at,您可以使用Apache's HashCodeBuilder中的哈希码实现。
Comparator,Comparable无法使用hashcode进行比较。
希望这能帮到您。
我认为你不能假定它是无害的。HashMap 将会使用 hashCode。
我会找另一个库。如果他们不能正确覆写 equals 和 hashCode,那么还有什么是他们做得对的呢?