[TIL] 230322
in TIL on Effective Java
✏️ 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