在扩展 Parceable sealed 类 的对象上使用 android-extensions`s Parcelize 注释

Using android-extensions`s Parcelize annotation on objects that extends Parceable sealed classes

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

代码:

sealed class Action : Parcelable

@Parcelize
object Run : Action()

@Parcelize
data class Ask(
    val question: String
) : Action()

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

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

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)
    }

}

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

您可以关注 example here