【发布时间】:2016-05-21 12:39:27
【问题描述】:
我正在尝试使接口 Parcelable,因此我需要这样的接口
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
也许我采取了错误的方法,
我有一个 parcelable,其中包含 A 或 B 类的列表
所以我在做
parcel.readTypedList(this.list, AB.CREATOR)
我要求列表是 A 或 B,这就是我使用接口的原因。
有人有任何建议或可能的解决方案吗?
【问题讨论】:
-
如果您遇到特定的编译错误,请发布错误。
-
感谢大家的帮助,我认为我没有很好地描述我的问题。无论如何,我通过遵循这个答案 stackoverflow.com/questions/22576709/… 并将 java 重写为 kotlin 解决了它。效果很好,只是我不再使用数据类。我试过 ParcelPaper,但它对我不起作用
标签: android parcelable kotlin