And*_*son 1 java static-analysis findbugs
我正在处理一个使用a的类DelayQueue.我注意到,由于DelayQueue实现Delayed接口中的对象,所述对象也需要实现一个compareTo()已经完成的方法.
这是否隐含意味着我也应该考虑实施equals()方法和hashCode()方法?
作为一种良好的做法,是的,因为equals,hashCode并compareTo具有密切的意义.它们可以被视为同一事物的不同方面.如果您在其他地方使用对象而未将它们一起实现,则可能会遇到不可预测的行为.
例如,您已将对象传递给使用二进制搜索算法的第三方库compareTo.几个月后,新版本的库改为基于散列的数据结构,以提高性能,继续使用equals和hashCode.从他们的角度来看,这并没有打破变革.
在这种情况下,不,因为DelayQueue不使用它们.