代码之家  ›  专栏  ›  技术社区  ›  ademar111190

在扩展可分块密封类的对象上使用android扩展的Parcelize注释

  •  2
  • ademar111190  · 技术社区  · 7 年前

    我正在使用kotlin android扩展来自动生成我的包文件,但是考虑到下面的代码 'Parcelable' should be a class .

    代码:

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

    @Parcelize 在一个 object (一旦它在做提问课)在我做的方式。

    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 回复  |  直到 7 年前
        1
  •  3
  •   Bhargav Rao rlgjr    7 年前

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

    你可以跟着 example here .