我阅读的大多数代码都不会覆盖equals(),hashCode()和其他Object方法。正常吗?

时间:2019-12-03 17:24:33

标签: java equals hashcode

我知道这看起来像是多次询问的问题,所以让我更具体一点:

如果我将对象传递给第三方代码,则可能需要我的对象覆盖Object方法。除非第三方是开源的,否则无法确定。

但是我阅读的大多数代码都缺少那些覆盖。

我的意思是,即使代码不是直接 ,只要通过对象,就需要正确的equals()或hashCode()到黑匣子第三方,它仍然有风险吗?

编辑:正如许多人指出的那样,在某些情况下不重写是有意义的:基本上,当我们对父实现感到满意时(这包括对象默认实现,当我们的对象不是“数据”时,这往往是好的。 ”)。我们也知道JDK中的某些方法需要那些方法重写。

但是在我的情况下,如果以最近的一个例子为例,我有pojos,它们是JSON层次结构的对象表示形式。然后,我将这些对象传递给第三方库以生成JSON(然后将其发送到一些REST ws)。是什么告诉我该第三方不需要重写Object方法?我想一个好的API会指出何时需要传递给它的对象覆盖hashCode()之类的东西,因为人们很可能会监督此问题。

0 个答案:

没有答案