상황
- data 클래스에
Array타입의 프로퍼티가 있을 경우에 IDE에서equals()와hashCode()를 오버라이드 하라는 알림이 나온다.
원인
- data 클래스는
equals()를 자동 생성할 때, 각 프로퍼티의equals()메소드를 호출하여 동등성을 비교한다. - 아래 사진은 위의
SomeClass를 자바로 디컴파일 한 코드다. Instrinsics.areEqual()코드를 살펴보면 두 객체의equals()를 호출하는 것을 확인할 수 있다.Array타입은equals()메소드가 구현되어 있지 않으므로, 오버라이드 해줘야된다.- 만약
List를 사용할 수 있는 상황이라면Array대신List로 대체하는 방법도 있다.


