[Effective-Java] Chapter3 #10. equals는 일반 규약을 지켜 재정의하라
·
Reference/Effective-Java
이번 아이템의 핵심적인 내용은 다음 한 줄이다. equals를 다 구현했다면 세 가지만 자문해보자. 대칭적인가? 추이성이 있는가? 일관적인가? 📌 equals 메서드를 재정의하지 않는 경우 equals 메서드는 재정의하기 쉬워 보이지만, 생각 이상으로 신경써야 할 점들이 많아 자칫하면 끔찍한 결과로 이어진다. 따라서, 재정의하지 않아도 되는 경우에는 안 하는 것이 최선이다. 1️⃣ 각 인스턴스가 본질적으로 고유하다. Integer나 String처럼 값을 표현하는 값 클래스가 아닌 동작하는 개체를 표현하는 클래스. 예를 들어, Thread가 좋은 예로써 Object의 equals 메서드는 이러한 클래스에 딱 맞게 구현되어 있다. 2️⃣ 인스턴스의 '논리적 동치성(logical equality)'을 검사할 ..