Kotlin 中的 Serializable 和 serialVersionUid
要在 Kotlin 中为类创建 serialVersionUID
,你有一些选项,包括将成员添加到类的伴随对象。
最简洁的字节码来自 private const val
,它将成为包含类的私有静态变量,在本例中为 MySpecialCase
:
class MySpecialCase : Serializable {
companion object {
private const val serialVersionUID: Long = 123
}
}
你也可以使用这些表单,每个表单都具有 getter / setter 方法的副作用,这些方法不是序列化所必需的…
class MySpecialCase : Serializable {
companion object {
private val serialVersionUID: Long = 123
}
}
这会创建静态字段,但也会在随播对象上创建一个 getter 以及 getSerialVersionUID
,这是不必要的。
class MySpecialCase : Serializable {
companion object {
@JvmStatic private val serialVersionUID: Long = 123
}
}
这会创建静态字段,但也会在包含类 MySpecialCase
上创建静态 getter 以及 getSerialVersionUID
,这是不必要的。
但是所有工作都是将 serialVersionUID
添加到 Serializable
类的方法。