ScalaPickling(https://github.com/scala/pickling)是一个用于Scala对象序列化的好工具。它是scala的顶级开源项目之一。
然而该程序包当前并不支持scala的2.12版本,刚好系统scala升级到2.12版本,因此拟自己对其进行实现一下。具体编译过程中还是有不少的BUG。
主要修正的BUG如下:
(1)需要添加引用:“scala-parser-combinators_2.12-1.0.6.jar”,这个包在scala安装路径的lib环境下可以找到。主要用于解决import scala.util.parsing.json._这个引用找不到的问题。
(2)需要scala.concurrent.util. Unsafe这个类
(3)JDK环境建议为1.8环境。
根据上述编译步骤,程序顺利通过。
对该包进行测试,如下:
case class Person(name: String, age: Int)
object PickleSample{
def main(args:Array[String]):Unit = {
println("封装测试...")
val originperson = Person("foo", 20)
val pkl = originperson.pickle
println(pkl.value)
println("还原测试...")
val person = pkl.unpickle[Person]
println(person.name)
println(person.age)
}
}
测试结果输出如下:
代码将公开在我的github(https://github.com/ndscigdata?tab=repositories)中,敬请关注。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。