在扩展 Parceable 密封类的对象上使用 android-extensions 的 Parcelize 注释

ade*_*190 7 annotations parcelable kotlin kotlin-android-extensions

我正在使用 kotlin android 扩展来自动生成我的 Parcelables,但是给定以下代码我得到'Parcelable' should be a class.

编码:

sealed class Action : Parcelable

@Parcelize
object Run : Action()

@Parcelize
data class Ask(
    val question: String
) : Action()
Run Code Online (Sandbox Code Playgroud)

我的理解是,不可能以我正在做的方式@Parcelizeobject(一旦它在 Ask 类上工作)中使用。

我想Parcelable在扩展 a 的对象中使用注释sealed class,所以我不知道该怎么做,也不要编写以下样板。

object Run : Action() {

    override fun writeToParcel(p0: Parcel?, p1: Int) {}
    override fun describeContents() = 0

    @JvmField
    val CREATOR = object : Parcelable.Creator<Run> {
        override fun createFromParcel(parcel: Parcel) = Run
        override fun newArray(size: Int) = arrayOfNulls<Run?>(size)
    }

}
Run Code Online (Sandbox Code Playgroud)

abd*_*mli 5

你需要确保你的 Kotlin 是最新的。

您可以按照此处示例进行操作