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



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

代码:

sealed class Action : Parcelable
@Parcelize
object Run : Action()
@Parcelize
data class Ask(
val question: String
) : Action()

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

我想在扩展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 是最新的。

您可以在此处遵循示例。

最新更新