可能重复:
Java:始终覆盖等于?
我应该覆盖equals我创建的任何类的函数吗?
即使是非常简单的类,只包含一些非常简单的属性,并且通过equals 我需要它的每个属性相等?
aio*_*obe 30
我应该为我创建的任何类重写equals函数吗?
覆盖equalsif(并且仅当)对象"表示某些数据",即,如果它模拟某些内容Person,Car或者RecipieIngredient(这些通常最终在集合中等).不要为其他类型的类重写equals,例如LoginServlet或DatabaseUtil.
记得在覆盖hashCode时始终覆盖equals.
(一个自然的后续问题:) 如果我不重写equals和hashCode会发生什么?
任何两个对象都将被视为不相等,除非它们是完全相同的对象.
[...]我需要它的每一个属性是平等的吗?
通常是的.这取决于你如何定义你的平等概念.需要注意的是对于引用类型,你可以重用/委托给该对象实现的equals(和hashCode)实现自己的时候.
相关问题:
| 归档时间: |
|
| 查看次数: |
5407 次 |
| 最近记录: |