okuzawatsの日記

Android / Kotlin Enthusiast 🤖

How to make your data class properties immutable

With data modifier, you can easily create data holder class with Kotlin.

data class User(val name: String, val age: Int)

You can instantiate the data class like this:

val person = User("Mohandas Karamchand Gandhi", 78)

Because declared with val , these properties could not be reassigned.

person.age = 79 // syntax error

So you may want to change val to var , like this.

data class User(val name: String, var age: Int) // unsafe

But this is not safe, because the value may be changed from anywhere.

So in this case, using copy from data class is safer. With named arguments with copy you can update data class properties.

var person = User("Mohandas Karamchand Gandhi", 78)

person = person.copy(age = 79)

#Kotlin

About me 😎

profile

茨城県つくば市在住のソフトウェアエンジニアです。専門領域はAndroidアプリ開発で、特にアーキテクチャに興味があります。某社でAndroidアプリ開発のテックリードをしています。

Jetpack ComposeによるAndroid MVVMアーキテクチャ入門の著者です。

👉 もっと詳しく

Writing 📝

Android MVVMアーキテクチャ入門

Androidアプリ開発の初学者に向けた、MVVM(Model-View-ViewModel)アーキテクチャの入門書を書きました。初学者の方を確実にネクストレベルに引き上げる技術書です。

👉 もっと詳しく

See Also 👀