rspec/rules/S1206/description.adoc

14 lines
782 B
Plaintext
Raw Normal View History

2021-01-27 13:42:22 +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-02-02 15:02:10 +01:00
2021-01-06 17:38:34 +01:00
____
2021-01-27 13:42:22 +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.
2021-01-27 13:42:22 +01:00
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-02-02 15:02:10 +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.