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
類的方法。