https://developer.android.com/kotlin/parcelize?hl=zh-cn#kts
plugins {
id("kotlin-parcelize")
}
import kotlinx.parcelize.Parcelize
@Parcelize
class User(val firstName: String, val lastName: String, val age: Int): Parcelable
@Parcelize
要求在主要构造函数中声明所有序列化属性。该插件会针对每个属性发出警告,并在类正文中声明一个后备字段。此外,如果主构造函数的某些参数不是属性,就不能应用 @Parcelize
。
如果您的类需要更高级的序列化逻辑,请将其写在某个伴随类中:
@Parcelize
data class User(val firstName: String, val lastName: String, val age: Int) : Parcelable {
private companion object : Parceler<User> {
override fun User.write(parcel: Parcel, flags: Int) {
// Custom write implementation
}
override fun create(parcel: Parcel): User {
// Custom read implementation
}
}
}