数据类似乎可以替代Java中的老式POJO。这些类将允许继承是非常可预期的,但是我看不到扩展数据类的便捷方法。我需要的是这样的:
open data class Resource (var id: Long = 0, var location: String = "")
data class Book (var isbn: String) : Resource()
上面的代码由于component1()
方法冲突而失败。data
仅将注释留在一个类中也不起作用。
也许还有另一个习惯来扩展数据类?
UPD:我可能仅注释子子类,但data
注释仅处理构造函数中声明的属性。也就是说,我必须声明所有父项的属性open
并覆盖它们,这很丑陋:
open class Resource (open var id: Long = 0, open var location: String = "")
data class Book (
override var id: Long = 0,
override var location: String = "",
var isbn: String
) : Resource()
componentN()
返回第N个属性值的方法。请参阅多声明