Veri sınıfları, Java'daki eski moda POJO'ların yerini alıyor gibi görünüyor. Bu sınıfların kalıtıma izin vermesi oldukça beklenebilir, ancak bir veri sınıfını genişletmek için uygun bir yol göremiyorum. İhtiyacım olan böyle bir şey:
open data class Resource (var id: Long = 0, var location: String = "")
data class Book (var isbn: String) : Resource()
Yukarıdaki kod, component1()
yöntemlerin çakışması nedeniyle başarısız oluyor . data
Sınıflardan yalnızca birinde not bırakma işi de yapmaz.
Belki de veri sınıflarını genişletmek için başka bir deyim vardır?
UPD: Yalnızca alt çocuk sınıfına ek açıklama ekleyebilirim, ancak data
ek açıklama yalnızca yapıcıda bildirilen özellikleri işler. Yani, tüm ebeveynin özelliklerini ilan etmeli open
ve çirkin olanları geçersiz kılmalıyım:
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()
olarak N-th özelliğinin değerini döndüren yöntemler oluşturur . Üzerinde doküman Bkz Çok Bildirgeleri'nin