scala trait BoopickleCodec[T] { def pickle(obj: T): Pickle def unpickle(pickle: Pickle): T } scala import boopickle.Default._ case class Person(name: String, age: Int) implicit val personCodec = new BoopickleCodec[Person] { override def pickle(obj: Person): Pickle = { val namePickle = implicitly[Pickler[String]].pickle(obj.name) val agePickle = implicitly[Pickler[Int]].pickle(obj.age) CompositePickler(namePickle, agePickle) } override def unpickle(pickle: Pickle): Person = { val name = implicitly[Pickler[String]].unpickle(pickle) val age = implicitly[Pickler[Int]].unpickle(pickle) Person(name, age) } } val pickleBytes = Pickle.intoBytes(person) val unpickledPerson = Unpickle[Person].fromBytes(pickleBytes)


上一篇:
下一篇:
切换中文