728x90
equals를 재정의 할 때는 hashCode도 반드시 재정의해야 한다. 그렇지 않으면 프로그램이 제대로 동작하지 않을 것이다.
재정의한 hashCode는 Object의 API 문서에 기술된 일반 규약을 따라야 하며, 서로 다른 인스턴스라면 되도록 해시코드도 서로 다르게 구현해야 한다. 이렇게 구현하기가 어렵지는 않지만 조금 따분한 일이긴하다. 아이템 10에서 이야기한 AtuoValue 프레임워크를 사용하여 equals와 hashCode 를 자동으로 만들어준다. (IDE에서도 기능 일부 제공)
728x90
'책 > EFFECTIVE JAVA' 카테고리의 다른 글
[모든 객체의 공통메서드] 아이템13. clone 재정의는 주의해서 진행하라 (0) | 2024.07.16 |
---|---|
[모든 객체의 공통메서드] 아이템12. toString을 항상 재정의하라 (0) | 2024.07.09 |
[모든 객체의 공통 메서드] 아이템10. equals는 일반 규약을 지켜 재 정의하라. (0) | 2024.07.07 |
[객체생성과 파괴] 아이템9. try-finally보다는 try-with-resources를 사용하라 (0) | 2024.07.04 |
[객체생성과 파괴] 아이템8. finalizer와 cleaner 사용을 피하라. (0) | 2024.07.02 |