Effective Java By Joshua Bloch Item 10: Obey The General Contract When Overriding Equals (Part 2)