我试图让一个接口可被序列化,所以我需要像这样的一个接口:
interface AB : Parcelable {
companion object {
val CREATOR : Parcelable.Creator<AB>
}
}
我的两个类A和B长得像:
data class A (...): Parcelable{
...
companion object {
val CREATOR : Parcelable.Creator<AB> = object : Parcelable.Creator<AB> {
override fun newArray(size: Int): Array<AB?> {
return arrayOfNulls(size)
}
override fun createFromParcel(parcel: Parcel): AB {
return A(parcel)
}
}
}
我在尝试在Kotlin中实现这样的接口,但似乎接口类不允许使用CREATOR。
也许我的方法不正确, 我有一个包含A或B类列表的可包含对象, 所以我正在做如下操作:
parcel.readTypedList(this.list, AB.CREATOR)
我需要列表必须是A或B,这就是为什么我使用接口的原因。
有没有人有建议或可能的解决方案?