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 으로 인식한다.