結論からいうと色々カスタマイズしたいならData Classを使わずに普通のクラス作れって話
環境
- kotlin 1.2
やりたいこと
kotlinには普通のクラスとは異なり値を格納するためだけのクラス、Dataクラスがよいうされている。変数を宣言するだけで自動でゲッターとセッターつけてくれて非常に便利なんだけど、getするときに〜の型に変換してほしいとか、setするタイミングで〜をつけてほしいとかある。
が、しかし
Data Classにgetter,setter()をカスタマイズできない。そこでもう1つ変数を用意する。
data class User(private val _name: String, val age: Int) { val name = "!!${_name}" get(): String { return "${field}!!" } } var u = User("taro", 30) // u.name = !!taro!!
悪あがき感が否めないが。。。素直にデフォルトのclassでやるべきか