Kotlin数据类是否默认可序列化?

iugsix8n  于 2023-06-24  发布在  Kotlin
关注(0)|答案(2)|浏览(186)

了解Kotlin后,爱上data class。我可以替换包含equalhashtoString的Java类。大多数Java类都是serializable类。所以我的问题是,当我们转换为data class时,我还需要显式地将其设置为serializable吗?喜欢

data class SomeJavaToKotlinClass(val member: String) : Serializable

或者说是可以的

data class SomeJavaToKotlinClass(val member: String)
rseugnpd

rseugnpd1#

不,Kotlin数据类不会隐式实现此接口。从这个例子中可以看出:

import java.io.Serializable

data class Foo(val bar: String)

fun acceptsSerializable(s: Serializable) { }

fun main(args: Array<String>) {
    val f: Foo = Foo("baz")
    
    // The following line produces the compiler error:
    // Type mismatch: inferred type is Foo but Serializable was expected
    acceptsSerializable(f)
}
vngu2lb8

vngu2lb82#

我不得不在类的末尾添加: Serializable来使其可序列化。就像这样

class SizeVariantModel (val price: Double, val discountedPrice: Double?) : Serializable
class ColorVariantModel (val name: String, val colorCode: String) : Serializable

我还必须导入Serializable

import java.io.Serializable

相关问题