728x90

- compareTo

코틀린에서는 객체를 비교할 때 비교연산자를 사용해도 compareTo를 자동으로 호출해준다

fun main() {
    val money1 = JavaMoney(2_000L)
    val money2= JavaMoney(1_000L)

    /*@Override
    public int compareTo(@NotNull JavaMoney o) {
        return Long.compare(this.amount, o.amount);
    }*/

    // 객체를 비교할 때 비교연산자를 사용해도 compareTo를 자동으로 호출해준다
    if (money1 > money2) {
        println("Money1이 Money2보다 금액이 큽니다")
    }
}

- 동일성 비교

객체의 주소 값 비교

java: ==

kotlin: ===

fun compareEx() {
    val money3= JavaMoney(1_000L)
    val money4= money3
    val money5= JavaMoney(1_000L)

    /* 동일성 비교. java에서 ==과 같음. 객체의 주소값 비교 */
    println(money3 === money4)  // true
    println(money3 === money5)  // false
}

- 동등성 비교

객체의 값 비교

java: equals

kotlin: ==

fun compareEx() {
    val money3= JavaMoney(1_000L)
    val money4= money3
    val money5= JavaMoney(1_000L)
    
    /* 동등성 비교. java에서 equals()와 같음. 객체의 값 비교 */
    println(money3 == money5)   // true
}

https://github.com/tyakamyz/kotlin-study/blob/master/src/main/kotlin/section01/4_%EC%BD%94%ED%8B%80%EB%A6%B0%EC%97%90%EC%84%9C_%EC%97%B0%EC%82%B0%EC%9E%90%EB%A5%BC_%EB%8B%A4%EB%A3%A8%EB%8A%94_%EB%B0%A9%EB%B2%95.kt

 

728x90
복사했습니다!