rspec/rules/S1206/description.adoc

10 lines
754 B
Plaintext
Raw Normal View History

2020-12-23 14:59:06 +01:00
According to the Java Language Specification, there is a contract between ``equals(Object)`` and ``hashCode()``:
2020-06-30 12:47:33 +02:00
2021-01-06 17:38:34 +01:00
____
2020-12-23 14:59:06 +01:00
If two objects are equal according to the ``equals(Object)`` method, then calling the ``hashCode`` method on each of the two objects must produce the same integer result.
It is not required that if two objects are unequal according to the ``equals(java.lang.Object)`` method, then calling the ``hashCode`` method on each of the two objects must produce distinct integer results.
2020-06-30 12:47:33 +02:00
However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hashtables.
2021-01-06 17:38:34 +01:00
____
2020-06-30 12:47:33 +02:00
In order to comply with this contract, those methods should be either both inherited, or both overridden.