코틀린 (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") //복사
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") //복사
*개인적으로 코틀린을 공부하면서 정리한 자료입니다. 수정 사항 및 이슈가 있는 경우 메일 부탁드립니다.
댓글
댓글 쓰기