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

时间:2018-08-16 19:36:55

标签: kotlin annotations parcelable 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()

我的理解是,无法像我一样在@Parcelize中使用object(一旦在Ask类上工作)。

我想在扩展Parcelable的对象中使用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)
    }

}

1 个答案:

答案 0 :(得分:2)

您需要确保您拥有最新的Kotlin。

您可以关注example here