我对java的equals(Object o)和hashCode()方法有疑问。这两种方法有哪些实施的技术限制?在实施这种方法时,有什么我不能做的吗?
答案 0 :(得分:1)
无。它只是Object类中的两个方法。您甚至可以在此方法中更改对象的状态,这将使每个开发人员和系统都变得怪异,但从技术角度来看它仍然有效。
答案 1 :(得分:1)
您可以技术上在其中的任何内容,您可以使用任何其他方法。
相反,您关心的是方法的实用和合同义务。
良好的经验法则:
答案 2 :(得分:0)
给定对象必须始终报告相同的哈希值 equals()表示相等的两个对象必须报告相同的哈希值 - 因此hashcode中没有时间戳:)。
两个不等的对象也可以具有相同的哈希码,但最好使哈希码难以重现。
答案 3 :(得分:0)
你需要记住的是:
每次覆盖任何这些方法时,请确保理解它。
答案 4 :(得分:0)
在实施这种方法时,有什么我不能做的吗?
嗯,作为一条经验法则(以及上面提到的@RHT和@AnttiSykäriexplains here)你的未来自我帮忙,始终使用来自{的