[TIL] 230322

✏️ Check Box

📌 정리


아이템11. equals를 재정의하려거든 hashCode도 재정의하라

equals()를 재정의할 땐, HashMap과 같은 라이브러리의 정상적인 동작을 위해서 반드시 hashCode()도 재정의해야 한다. equals()로 두 객체가 같다고 판단된다면 hashCode() 또한 같은 값을 반환해야 한다는 것이다.

책에선 각 타입의 hashCode() 메서드를 통해 각각의 필드를 더해 계산하여 산출해 낸다. 다만 AutoValue, Lombok 그리고 IDE 자체에서 지원하는 경우에는 따라서 쓰는 경우가 많다고 한다.

아이템12. toString을 항상 재정의하라

toString()을 잘 구현한 클래스는 디버깅하기 쉽고, 활용도가 높다고 한다. 또한 toString()을 구현할 때 포맷을 Docs로 문서화하거나 의도를 명확히 밝혀야 한다. 그리고 toString()에 포함된 정보를 각각 다시 얻을 수 있는 API를 제공해야 한다.

Back to [TIL] 230316