嘿我正在使用一个模型作为 DTO,JsonCreator和Percelize 我的问题是我想使用多态(反汇编公共部分)并且不知道如何在 Kotlin 中编写它。
@Parcelize
@Entity
open class Location (var lat: Double = 0.0, var lng: Double = 0.0) :Parcelable
@Parcelize
@Entity
class MapsMarker(lat: Double, lng: Double, var name: String): Location(lat, lng), Parcelable
这里的问题是编译喊叫
Parcelizable构造函数参数应为“ var 或 val ”
表示lat
的字段lng
,MapsMarker
。
我正在使用继承,所以我不能使用val,因为我将覆盖Location
类的属性。我也不想要我的房间 @Entity会有重复的字段。
如果有人知道答案,请帮助我;)
答案 0 :(得分:1)
@Parcelize 不适用于继承issue link。您仍然可以像上面提到的here
那样使用自定义包裹<<<<与您的问题无关,但考虑试一下>>>>
您的MapsMarker类违反了is a
关系-> MapsMarker是一个位置吗?
它不应继承自Location,而应优先使用组合-> MapsMarker has a
Location
@Parcelize
@Entity
class MapsMarker(val location: Location, var name: String): Parcelable
您可以找到许多详细介绍类设计的博客。 This是我现在得到的第一个与Google相关的结果。