如何序列化 scala 特性播放 2.3.x



请考虑以下事项:

我有一个特质插件..

trait Plugin {val foo:String, val bar:String}

.. 和 2 个案例类 plugOne 和 plug2!

case class PlugOne ( override val foo:String, override val bar:String, plugValOne:String ) extends Plugin
case class PlugTwo ( override val foo:String, override val bar:String, plugValTwo:String ) extends Plugin

另一个案例类..

case class PluginCol ( plugins:Seq[Plugin] )

.. 存储一系列插件。考虑到我有我的案例类 PlugOne 和 PlugTwo 的所有隐式格式,我如何序列化我的 PluginCol,因为它具有一系列插件特征(没有应用/取消应用方法(。我想要实现的是将 PluginCol 的 json 版本写入 mongoDB 集合。

有没有办法解决这样的问题?

提前致谢

Serialization是将Objects转换为可以存储并可用于重建对象的格式。

Plugin是一个trait.不能创建 Plugin 的对象。要创建Seq[Plugin],您将创建 PlugOnePlugTwoSequence

scala> PluginCol(Seq(PlugTwo("s", "x", "z"), PlugOne("a","b","c")))
res7: PluginCol = PluginCol(List(PlugTwo(s,x,z), PlugOne(a,b,c)))
scala> res7.plugins
res9: Seq[Plugin] = List(PlugTwo(s,x,z), PlugOne(a,b,c))

如您所见,从上面的代码中,Seq[Plugin]实际上包含案例类 PlugOne 和 PlugTwo 的对象。

从您的问题中考虑您拥有 case 类的所有隐式格式 PlugOnePlugTwo ,序列化对象应该没有任何问题。

相关内容

  • 没有找到相关文章

最新更新