8
Kotlinでデータクラスを拡張する
データクラスは、Javaの昔ながらのPOJOに取って代わるようです。これらのクラスが継承を可能にすることはかなり期待できますが、データクラスを拡張する便利な方法はありません。私が必要なのはこのようなものです: open data class Resource (var id: Long = 0, var location: String = "") data class Book (var isbn: String) : Resource() 上記のコードは、component1()メソッドの衝突により失敗します。dataアノテーションを1つのクラスだけに残しても、機能しません。 おそらく、データクラスを拡張する別のイディオムがありますか? UPD:子の子クラスdataのみに注釈を付ける場合がありますが、注釈はコンストラクタで宣言されたプロパティのみを処理します。つまり、すべての親のプロパティを宣言してopenオーバーライドする必要があります。 open class Resource (open var id: Long = 0, open var location: String = "") data class Book ( override var id: Long = …