반응형
반사성(reflexivity)
-
Item 10. equals는 일반 규약을 지켜 재정의하라Book/Effective Java 3E 2022. 10. 17. 06:28
equals 메서드는 재정의하기 쉬워 보이지만 곳곳에 함정이 있어 자칫하면 끔찍한 결과를 초래합니다. 문제를 회피하는 가장 쉬운 길은 아예 재정의하지 않는 것입니다. 다음에 열거한 상황 중 하나에 해당한다면 재정의하지 않는 것이 최선입니다. 각 인스턴스가 본질적으로 고유하다. 값을 표현하는(Integer, String 등) 게 아니라 동작하는 개체를 표현하는 클래스가 여기 해당한다. (예: Thread) 인스턴스의 '논리적 동치성(logical equality)'을 검사할 일이 없다. 상위 클래스에서 재정의한 equals가 하위 클래스에도 딱 들어맞는다. 클래스가 private이거나 package-private이고 equals 메서드를 호출할 일이 없다. 위험을 철저히 회피하는 스타일이라 equals가 ..