Twitter-chill 看起来是一个很好的解决方案,可以解决如何在 Scala 中高效序列化而不需要过多的样板文件的问题。
但是,我没有看到任何证据表明他们如何处理案例类别。这是自动工作还是需要做一些事情(例如创建一个零参数构造函数)?
我有一些经验WireFormat
Scoobi 内置的序列化机制,它是类似于 Scalding 的 Scala Hadoop 包装器。他们为案例类提供最多 22 个参数的序列化器,这些序列化器使用 apply 和 unapp 方法,并对这些函数的参数进行类型匹配以检索类型。 (这在 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]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)