处理twitter寒冷中的case类(Scala接口到Kryo)?

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

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

我对WireFormat内置的WireFormat序列化机制有一些经验, WireFormat是一个类似于Scalding的Scala Hadoop包装器。 他们使用序列化程序来处理多达22个使用apply和unapply方法的参数,并对这些函数的参数进行类型匹配以检索类型。 (这在Kryo /寒意中可能没有必要。)


他们通常只是工作(只要组件成员也可以由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]
链接地址: http://www.djcxy.com/p/68273.html

上一篇: Handling case classes in twitter chill (Scala interface to Kryo)?

下一篇: Scala Option types in a case class