Safe/Easy 更新 Parcelable 的方式
Safe/Easy way to update Parcelable
在向已经实现 Parcelable 的 class 中引入新成员变量时,是否有一种常见的做法可以防止 writeToParcel
和 Parcel contructor
中的字段丢失?
原因是因为目前我有数百个 pojo classes 在开发阶段不断变化(adding/renaming 字段)。我发现每次更改时都更新 Parceable 很乏味,尤其是加入团队的新开发人员往往会错过此更改。
遗留 java 序列化似乎已经很好地处理了这一点。
将光标放在实现 Parcelable 接口的 class 名称上,然后按 alt+enter(option+enter in mac)用于 Projet 快速修复。单击名为 Replace Parcelable 的选项 Implementation.This 为您完成工作。
您可以使用 NO HARD CODING 方法和 Android studio 4.1.2[= 轻松创建和更新 parcelable class 48=] 可以在几秒钟内为您完成!!!
更新现有的 parcelable class:
第 1 步: 如果您需要在现有 class 中添加一些新字段,那么您需要删除以前的 writeToParcel
和 describeContents
方法和 CREATOR
class.
第 2 步: 通过为 windows 和 Option+Enter
按 Alt+Enter
实施可分割方法for mac 但你会发现 writeToParcel
第一次是空的 -
第三步:然后你会发现你的class名字现在是红色的。因此,您需要添加 CREATOR
class 并通过按 Alt+Enter
表示 windows 和 Option+Enter
表示 [=] 来填充空的 writeToParcel
68=]-
最后,您会看到您的 class 现在可以完全打包 class 了!!!
要获得更多见解,请查看我的真实 answer.
2021 年重温此内容。我们可以简单地使用 Parcelize
注释:
import android.os.Parcelable
import kotlinx.parcelize.Parcelize
@Parcelize
data class Headlines(
val title: String,
val description: String,
): Parcelable
在向已经实现 Parcelable 的 class 中引入新成员变量时,是否有一种常见的做法可以防止 writeToParcel
和 Parcel contructor
中的字段丢失?
原因是因为目前我有数百个 pojo classes 在开发阶段不断变化(adding/renaming 字段)。我发现每次更改时都更新 Parceable 很乏味,尤其是加入团队的新开发人员往往会错过此更改。
遗留 java 序列化似乎已经很好地处理了这一点。
将光标放在实现 Parcelable 接口的 class 名称上,然后按 alt+enter(option+enter in mac)用于 Projet 快速修复。单击名为 Replace Parcelable 的选项 Implementation.This 为您完成工作。
您可以使用 NO HARD CODING 方法和 Android studio 4.1.2[= 轻松创建和更新 parcelable class 48=] 可以在几秒钟内为您完成!!!
更新现有的 parcelable class:
第 1 步: 如果您需要在现有 class 中添加一些新字段,那么您需要删除以前的 writeToParcel
和 describeContents
方法和 CREATOR
class.
第 2 步: 通过为 windows 和 Option+Enter
按 Alt+Enter
实施可分割方法for mac 但你会发现 writeToParcel
第一次是空的 -
第三步:然后你会发现你的class名字现在是红色的。因此,您需要添加 CREATOR
class 并通过按 Alt+Enter
表示 windows 和 Option+Enter
表示 [=] 来填充空的 writeToParcel
68=]-
最后,您会看到您的 class 现在可以完全打包 class 了!!! 要获得更多见解,请查看我的真实 answer.
2021 年重温此内容。我们可以简单地使用 Parcelize
注释:
import android.os.Parcelable
import kotlinx.parcelize.Parcelize
@Parcelize
data class Headlines(
val title: String,
val description: String,
): Parcelable