책/EFFECTIVE JAVA
[모든 객체의 공통메서드] 아이템11. equals를 재정의 하려거든 hashCode 도 재 정의하라
미로처럼
2024. 7. 8. 00:45
728x90
equals를 재정의 할 때는 hashCode도 반드시 재정의해야 한다. 그렇지 않으면 프로그램이 제대로 동작하지 않을 것이다.
재정의한 hashCode는 Object의 API 문서에 기술된 일반 규약을 따라야 하며, 서로 다른 인스턴스라면 되도록 해시코드도 서로 다르게 구현해야 한다. 이렇게 구현하기가 어렵지는 않지만 조금 따분한 일이긴하다. 아이템 10에서 이야기한 AtuoValue 프레임워크를 사용하여 equals와 hashCode 를 자동으로 만들어준다. (IDE에서도 기능 일부 제공)
728x90