คลาสข้อมูลดูเหมือนจะแทนที่ POJO ที่ล้าสมัยใน Java ค่อนข้างคาดหวังว่าคลาสเหล่านี้จะอนุญาตให้มีการสืบทอด แต่ฉันไม่เห็นวิธีที่สะดวกในการขยายคลาสข้อมูล สิ่งที่ฉันต้องการคือสิ่งนี้:
open data class Resource (var id: Long = 0, var location: String = "")
data class Book (var isbn: String) : Resource()
รหัสข้างต้นล้มเหลวเนื่องจากการปะทะกันของcomponent1()
วิธีการ การเพิ่มdata
คำอธิบายประกอบทิ้งไว้ในคลาสใดคลาสหนึ่งเท่านั้นก็ไม่ทำงานเช่นกัน
อาจมีสำนวนอื่นในการขยายคลาสข้อมูลหรือไม่
UPD: ฉันอาจใส่คำอธิบายประกอบเป็นคลาสย่อยของเด็กเท่านั้น แต่data
คำอธิบายประกอบจะจัดการกับคุณสมบัติที่ประกาศใน Constructor เท่านั้น นั่นคือฉันจะต้องประกาศคุณสมบัติของผู้ปกครองทั้งหมด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-th โดยปริยาย ดูเอกสารเกี่ยวกับMulti-Declarations