gpt4 book ai didi

java - 使用Java的DelayQueue时,是否还要实现equals()和hashCode()?

转载 作者:行者123 更新时间:2023-11-29 10:19:53 25 4
gpt4 key购买 nike

我目前正在处理一个使用 DelayQueue 的类。我注意到,由于 DelayQueue 中的对象实现了 Delayed 接口(interface),所以这些对象也需要实现 compareTo() 方法,这已经完成了。

这是否暗示我也应该考虑实现 equals() 方法和 hashCode() 方法?

我问的原因是因为我偶然发现了 this advice通过 FindBugs 搜索项目时,并且我正在尝试确定对于这种特殊情况是否需要它。

最佳答案

作为一种好的做法,是的,因为 equalshashCodecompareTo 具有相近的含义。它们可以看作是同一事物的不同方面。如果您的对象在其他地方使用而没有一起实现它们,您可能会遇到不可预知的行为。

例如,您已将对象传递给使用二进制搜索算法的第 3 方库,它使用 compareTo。几个月后,新版本的库更改为基于散列的数据结构以提高性能,这依赖于 equalshashCode。从他们的角度来看,这不是破坏性的变化。

在这种情况下,不,因为 DelayQueue 不使用它们。

关于java - 使用Java的DelayQueue时,是否还要实现equals()和hashCode()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8446736/

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