코틀린 (Kotlin) 데이터 클래스 정리

데이터 클래스

data class 는 toString, equals, hashcode 함수를 자동 생성해 줍니다.
그래서 자바와 다르게 코틀린에서 == 은 equals 를 호출합니다.
자바처럼 참조를 호출하려면 === 을 사용합니다.

data class Client(val name: String, val code: String)

데이터 클래스 - copy() 함수 제공

데이터 클래스는 copy() 함수를 제공합니다.
코틀린에서 프로퍼티는 val 또는 var 도 가능합니다.
그러나 데이터 클래스의 모든 프로퍼티를 읽기 전용(val)으로 만들어 불변 클래스로 만들기를 권장합니다.
다중 스레드일때 값이 변경되어 동기화할 필요가 줄어들도록 하기 위해서입니다.

객체를 메모리에서 값을 변경하는 것보다 복사본을 만드는 것이 더 좋습니다.

public final class Client {
    public final Client copy(@NotNull String name, @NotNull String code) {
        return new Client(name, code) //새로운 객체를 생성해서 복사
    }
}

//사용
val client = Client("zerog", "1111")
val clientCopy = client.copy("zerog2", "2222") //복사

*개인적으로 코틀린을 공부하면서 정리한 자료입니다. 수정 사항 및 이슈가 있는 경우 메일 부탁드립니다.

댓글

이 블로그의 인기 게시물

코틀린 (Kotlin) filter, map, all, any, count, find, groupBy, flatMap 함수 정리

코틀린 (Kotlin) 인터페이스 정리

RecyclerView 에서 notifyItemChanged()의 payload 이해하기