提问者:小点点

在Android中用Kotlin创建Parcelable数据类有什么便捷的方法吗?


我目前正在Java项目中使用优秀的AutoParcel,这有助于Parcelable类的创建。

现在,我考虑在下一个项目中使用的Kotlin有了数据类的概念,可以自动生成equals、hashCode和toString方法。

有没有一种便捷的方法可以让Kotlin数据类以便捷的方式打包(不需要手动实现方法)?


共3个答案

匿名用户

Kotlin 1.1.4 发布

Android扩展插件现在包括一个自动的Parcelable实现生成器。在主构造函数中声明序列化属性并添加@Parcelze注释,将自动创建WriteToParcel()/createFromParcel()方法:

@Parcelize
class User(val firstName: String, val lastName: String) : Parcelable

因此,您需要启用他们将其添加到模块的build.gradle:

apply plugin: 'org.jetbrains.kotlin.android.extensions'

android {
    androidExtensions {
        experimental = true
    }
}

匿名用户

你可以试试这个插件:

Android-包裹能够-英特尔lij-插件-kotli n

它可以帮助您为kotlin的数据类生成Android Parcelable样板代码。它最终看起来像这样:

data class Model(var test1: Int, var test2: Int): Parcelable {

    constructor(source: Parcel): this(source.readInt(), source.readInt())

    override fun describeContents(): Int {
        return 0
    }

    override fun writeToParcel(dest: Parcel?, flags: Int) {
        dest?.writeInt(this.test1)
        dest?.writeInt(this.test2)
    }

    companion object {
        @JvmField final val CREATOR: Parcelable.Creator<Model> = object : Parcelable.Creator<Model> {
            override fun createFromParcel(source: Parcel): Model{
                return Model(source)
            }

            override fun newArray(size: Int): Array<Model?> {
                return arrayOfNulls(size)
            }
        }
    }
}

匿名用户

只需单击 kotlin 数据类的数据关键字,然后按 alt Enter,选择第一个选项,上面写着“添加可解析实现”