小编mic*_*tar的帖子

Kotlin接口中的伴随对象

我正在尝试创建一个Parcelable接口,因此我需要一个像这样的接口

interface AB : Parcelable {
    companion object {
        val CREATOR : Parcelable.Creator<AB>
    }
}
Run Code Online (Sandbox Code Playgroud)

和我的两个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)
            }

        }
    }
Run Code Online (Sandbox Code Playgroud)

我正在努力在kotlin中实现这样的接口.似乎接口类不允许CREATOR

也许我采取了错误的方法,
我有一个parcelable包含一个A或B类的列表,所以我在做

parcel.readTypedList(this.list, AB.CREATOR)
Run Code Online (Sandbox Code Playgroud)

我要求列表是A或B,这就是我使用接口的原因.

有人有任何建议或可能的解决方案吗?

android parcelable kotlin

15
推荐指数
2
解决办法
1万
查看次数

标签 统计

android ×1

kotlin ×1

parcelable ×1