생성자 대신 정적 팩터리 메서드를 고려하라
equals 메서드는 재정의하기 쉬워 보이지만 곳곳에 함정이 있기 때문에 자칫 잘못하면 끔찍한 결과를 초래한다. 따라서 아예 재정의하지 않는 편이 나을 수도 있는데 다음과 같은 상황 중 하나에 해당하면 재정의하지 않는 것이 최선이다.
equals를 재정의한 클래스 모두에서 hashcode도 재정의해야 한다. 그렇지 않으면 hashcode 일반 규약을 어기게 되어 해당 클래스의 인스턴스를 HashMap이나 HashSet같은 컬렉션의 원소로 넣을 때 문제를 일으킬 것이다.