equals-hashcode: equals/hashCode contract demos, missing hashCode and constant-hash costs, mutable keys, records, JPA entity id trap, 13 contract tests
Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_017ic4b66uwsWr9B1ouyrzUh
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
== Reflexive / null ==
|
||||
p.equals(p) = true
|
||||
p.equals(null) = false
|
||||
|
||||
== Symmetry broken by instanceof + extra field ==
|
||||
plain.equals(red) = true
|
||||
red.equals(plain) = false
|
||||
List.of(plain).contains(red) = false
|
||||
List.of(red).contains(plain) = true
|
||||
|
||||
== Transitivity broken by the lenient fix ==
|
||||
r.equals(plain) = true
|
||||
plain.equals(b) = true
|
||||
r.equals(b) = false
|
||||
|
||||
== Consistency broken by a changing equals() ==
|
||||
f.equals(f2) x4 = true false true false
|
||||
Reference in New Issue
Block a user