재귀 equals(==) 호출을 보고합니다.
Kotlin에서 ==는 equals 메서드를 내부에서 호출하여 객체 값을 비교합니다.
반면 ===는 참조에 따라 객체를 비교하며
=== equals 메서드 구현 시 더 자주 사용됩니다.
그러나 잘못하여 ===가 ==로 혼동될 경우 무한 재귀가 발생할 수 있습니다.
예:
class X {
override fun equals(other: Any?): Boolean {
if (this == other) return true
return false
}
}
빠른 수정을 적용한 후:
class X {
override fun equals(other: Any?): Boolean {
if (this === other) return true
return false
}
}