Kotlin 数据 class 默认可序列化吗?
Is Kotlin data class serializable by default?
了解Kotlin后,爱上了data class
。
我可以替换具有 equal
和 hash
以及 toString
的 Java classes。
其中大多数 Java class 是 serializable
class。所以我的问题是,当我们转换为 data class
时,我还需要明确地使其成为 serializable
吗?喜欢
data class SomeJavaToKotlinClass(val member: String) : Serializable
或者可以
data class SomeJavaToKotlinClass(val member: String)
不,Kotlin 数据 类 不隐式实现此接口。从this example可以看出:
import java.io.Serializable
data class Foo(val bar: String)
fun acceptsSerializable(s: Serializable) { }
fun main(args: Array<String>) {
val f: Foo = Foo("baz")
acceptsSerializable(f) // Will not compile
}
我不得不在 class 的末尾添加 : Serializable
以使其成为可序列化的。就这样
class SizeVariantModel (val price: Double, val discountedPrice: Double?) : Serializable
class ColorVariantModel (val name: String, val colorCode: String) : Serializable
我还必须导入 Serializable
import java.io.Serializable
了解Kotlin后,爱上了data class
。
我可以替换具有 equal
和 hash
以及 toString
的 Java classes。
其中大多数 Java class 是 serializable
class。所以我的问题是,当我们转换为 data class
时,我还需要明确地使其成为 serializable
吗?喜欢
data class SomeJavaToKotlinClass(val member: String) : Serializable
或者可以
data class SomeJavaToKotlinClass(val member: String)
不,Kotlin 数据 类 不隐式实现此接口。从this example可以看出:
import java.io.Serializable
data class Foo(val bar: String)
fun acceptsSerializable(s: Serializable) { }
fun main(args: Array<String>) {
val f: Foo = Foo("baz")
acceptsSerializable(f) // Will not compile
}
我不得不在 class 的末尾添加 : Serializable
以使其成为可序列化的。就这样
class SizeVariantModel (val price: Double, val discountedPrice: Double?) : Serializable
class ColorVariantModel (val name: String, val colorCode: String) : Serializable
我还必须导入 Serializable
import java.io.Serializable