객체의 내용 비교

개배박발불지은만자·2024년 10월 19일
1

Kotlin에서 객체의 내용을 비교하기 위해서 if (a==b) 라는 실수는 자주 하게 된다
--항상 false 이 보장된다.--

객체의 비교는 생성된 객체 instance 의 비교로 되기 때문에 객체 값을 개별로 비교하게 되는 번거러움이 있다.

class TermTime(private val value: Int=1440/*00:00~24:00*/) {

  /**
   * Equals
   * ```
   * val a = TermTime(1)
   * val b = TermTime(1)
   * assert(a == b)  // 이제 true가 됩니다.
   * ```
   *
   * @param other
   * @return
   */
  override fun equals(other: Any?): Boolean {
    if (this === other) return true
    if (other !is TermTime) return false
    return value == other.value
  }

  override fun hashCode(): Int {
    return value
  }

이렇게 equals(other: Any?)를 override 해야 한다 other의 Any? 의 자료형에 유의하자 특정자료형으로 선언하면 새로운 function 으로 인식한다.

0개의 댓글