У меня есть родительский класс в Kotlin
как этот
open class Parent(
var name: String,
var dose: JsonElement?,
val other: String?) {
constructor(name: String, dose: JsonElement?)
: this(
name = name.toLowerCase(),
dose = dose,
other = null
)
}
И его дочерний класс как этот
class Child(
val type: String,
name: String,
dose: JsonElement?
) : Parent(name, dose), Parcelable {
constructor(parcel: Parcel) : this(
parcel.readString() ?: "",
parcel.readString() ?: "",
Gson().fromJson(parcel.readString(), JsonElement::class.java))
override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeString(type)
parcel.writeString(name)
parcel.writeString(Gson().toJson(dose))
}
override fun describeContents(): Int {
return 0
}
companion object CREATOR : Parcelable.Creator<Child> {
override fun createFromParcel(parcel: Parcel): Child {
return Child(parcel)
}
override fun newArray(size: Int): Array<Child?> {
return arrayOfNulls(size)
}
}
}
Моя проблема здесь, когда я передаю объект дочернего класса какраспространяются только свойства дочернего класса.Все свойства базового класса, такие как name
и dose
, становятся нулевыми после десериализации объекта.
У меня есть перекрестная проверка порядка чтения и записи, а также проверка правильности записи значений во время сериализации.Дайте мне знать, если мне потребуется дополнительная информация.