请考虑以下事项:
我有一个特质插件..
trait Plugin {val foo:String, val bar:String}
..和2个案例类plugOne和plugTwo!
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,因为它有一系列插件特征(没有apply / unapply方法)。 我想要实现的是将一个json版本的PluginCol写入mongoDB集合。
有没有办法解决这样的问题?
提前致谢
答案 0 :(得分:0)
Serialization
是将Objects
转换为可以存储的格式,可用于重建对象。
Plugin
是trait
。您无法创建Plugin
的对象。要创建Seq[Plugin]
,您需要创建Sequence
或PlugOne
的{{1}}。
PlugTwo
如您所见,从上面的代码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))
实际上包含案例类PlugOne和PlugTwo的对象。
从您的问题中考虑到您拥有案例类Seq[Plugin]
和PlugOne
的所有隐式格式,序列化对象应该没有任何问题。