
사내 프로젝트를 진행하다가 테스트 코드를 작성하던 도중 두 객체의 값은 같았는데, 다르다는 에러가 계속해서 발생하게 되었다. 그래서 equals()를 재정의 하지 않아서 발생했던 문제라고 인식하게 되었고, equals()와 hashcode()를 재정의해서 문제를 해결했다. 여기서 끝이 아니라 equals()와 hashcode()를 왜 같이 재정의해야 하는지 간단히 정리하려고 한다. equals()는 언제 정의해야 할까?객체를 기준으로 예를 들자면, equals()는 두 개의 객체가 있고, 두 객체의 값의 동등성을 비교할 때 사용한다. hashcode()는 언제 정의해야 할까?equals()만 재정의 한다고 해서 객체의 값이 동등하다고 할 수는 없다. 객체의 값이 동등하다고 하더라도 해시 값은 다를 수 있..
Java
2022. 4. 22. 23:28