为 Android 开发时,Kotlin 中 serialVersionUID 的必要性
necessity of serialVersionUID in Kotlin when developing for Android
我在内部讨论了使用 Kotlin 编码时对 serialVersionUID 的要求,特别是 Android 平台。在 Java 中,我们总是添加它,因为 Android Studio 使它变得非常简单。但是,Kotlin 没有任何帮助。这让我们质疑 Kotlin 中对 serialVersionUID 的要求。
你对此有何看法?
- 是否存在可能出错的场景?
- 您是否还添加了 serialVersionUID(大概作为伴随对象)?
我很想听听你的意见。
serialVersionUID
仅用于 Java 序列化 (java.io.Serializable
)。大多数 Android 应用程序使用 Android 特定的序列化 (Parcelable
),因为它更高效。如果您的应用程序不使用 Java 序列化,则在 类 中包含 serialVersionUID
没有任何好处,无论您使用的是 Java 还是 Kotlin。
如果你坚持使用Serializableclass,这是必须的,这是为了防止属性变化导致反序列化失败的问题。现在您可以使用 Android Studio 中的插件自动生成默认的 Serial Version UID,例如 Java。插件地址在这里:Generateserialversionuid.
我在内部讨论了使用 Kotlin 编码时对 serialVersionUID 的要求,特别是 Android 平台。在 Java 中,我们总是添加它,因为 Android Studio 使它变得非常简单。但是,Kotlin 没有任何帮助。这让我们质疑 Kotlin 中对 serialVersionUID 的要求。
你对此有何看法?
- 是否存在可能出错的场景?
- 您是否还添加了 serialVersionUID(大概作为伴随对象)?
我很想听听你的意见。
serialVersionUID
仅用于 Java 序列化 (java.io.Serializable
)。大多数 Android 应用程序使用 Android 特定的序列化 (Parcelable
),因为它更高效。如果您的应用程序不使用 Java 序列化,则在 类 中包含 serialVersionUID
没有任何好处,无论您使用的是 Java 还是 Kotlin。
如果你坚持使用Serializableclass,这是必须的,这是为了防止属性变化导致反序列化失败的问题。现在您可以使用 Android Studio 中的插件自动生成默认的 Serial Version UID,例如 Java。插件地址在这里:Generateserialversionuid.