gpt4 book ai didi

scala - 在 twitter chill 中处理案例类(Scala 接口(interface)到 Kryo)?

转载 作者:行者123 更新时间:2023-12-04 08:44:27 28 4
gpt4 key购买 nike

Twitter-chill 看起来是一个很好的解决方案,可以解决如何在 Scala 中有效地序列化而不需要过多的样板。

但是,我没有看到他们如何处理案例类的任何证据。这只是自动工作还是需要做一些事情(例如创建一个零参数构造函数)?

我对 WireFormat 有一些经验Scoobi 内置的序列化机制,它是类似于 Scalding 的 Scala Hadoop 包装器。他们为案例类提供了最多 22 个参数的序列化器,这些参数使用 apply 和 unapply 方法,并对这些函数的参数进行类型匹配以检索类型。 (这在 Kryo/chill 中可能没有必要。)

最佳答案

它们通常可以工作(只要组件成员也可以被 Kryo 序列化):

case class Foo(id: Int, name: String)

// setup
val instantiator = new ScalaKryoInstantiator
instantiator.setRegistrationRequired(false)
val kryo = instantiator.newKryo()

// write
val data = Foo(1,"bob")
val buffer = new Array[Byte](4096]
val output = new Output(buffer)
kryo.writeObject(output, data)

// read
val input = new Input(buffer)
val data2 = kryo.readObject(input,classOf[Foo]).asInstanceOf[Foo]

关于scala - 在 twitter chill 中处理案例类(Scala 接口(interface)到 Kryo)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20850569/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com