​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
}
}
}