请考虑以下事项:
我有一个特质插件..
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]
,您将创建 PlugOne
或 PlugTwo
的Sequence
。
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 类的所有隐式格式 PlugOne
和 PlugTwo
,序列化对象应该没有任何问题。