安卓开发 kotlin Parcelable的使用如何不重写writeToParcel
时间: 2023-06-15 18:05:40 浏览: 58
在 Kotlin 中,可以使用 `@Parcelize` 注解来自动生成 Parcelable 实现,从而避免手动编写 `writeToParcel` 和 `createFromParcel` 方法。使用 `@Parcelize` 注解的类需要满足以下条件:
1. 类必须实现 `Parcelable` 接口。
2. 类的主构造函数必须是公共的,并且必须接受所有需要序列化的属性作为参数。
3. 所有需要序列化的属性必须是可以序列化的类型,或者实现了 `Parcelable` 接口。
下面是一个简单的示例:
```
@Parcelize
data class MyData(val name: String, val age: Int) : Parcelable
```
使用 `@Parcelize` 注解后,Kotlin 编译器会自动生成 `writeToParcel` 和 `createFromParcel` 方法,你无需手动编写。
注意,`@Parcelize` 注解是在 `kotlin-android-extensions` 插件中定义的,因此需要在 build.gradle 文件中添加以下依赖:
```
apply plugin: 'kotlin-android-extensions'
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
```
另外,如果你需要在非 Android 环境下使用 Parcelable,可以使用 `@Parcel` 注解,它是 `@Parcelize` 注解的一个替代方案。