TL;DR version: Don’t implement equals()
on mutable objects.
This is a post I’ve been tossing around for a couple of years, ever since a lunchtime debate with a colleague. It’s a simple statement: You shouldn’t implement the equals()
method if your object isn’t immutable.1