Skip to content

Instantly share code, notes, and snippets.

@altitdb
Created August 30, 2012 16:45
Show Gist options
  • Save altitdb/3532819 to your computer and use it in GitHub Desktop.
Save altitdb/3532819 to your computer and use it in GitHub Desktop.
@Java
When you override the equals method, you must adhere to its general contract. Here
is the contract, copied from the specification for java.lang.Object:
The equals method implements an equivalence relation:
• It is reflexive: For any reference value x, x.equals(x) must return true.
• It is symmetric: For any reference values x and y, x.equals(y) must return true
if and only if y.equals(x) returns true.
• It is transitive: For any reference values x, y, and z, if x.equals(y)
returns true and y.equals(z) returns true, then x.equals(z) must return true.
• It is consistent: For any reference values x and y, multiple invocations
of x.equals(y) consistently return true or consistently return false, provided
no information used in equals comparisons on the object is modified.
• For any non-null reference value x, x.equals(null) must return false.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment