See the javadoc for Object
's .equals()
:
The equals method for class Object implements the most discriminating possible equivalence relation on objects; that is, for any non-null reference values x and y, this method returns true if and only if x and y refer to the same object (x == y has the value true).
Which means, if you don't override it in your class, this is what you get.
The JLS is still right about what it says; however it is up to implementations to define their own .equals()
contract.
(and of course, if you override .equals()
, you should override .hashCode()
as well)