在扩展 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。
我正在使用 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。