【发布时间】:2019-03-22 15:34:30
【问题描述】:
我正在使用具有案例类编解码器映射的 Scala Mongo 驱动程序,根据其文档,例如:
object CodecProviders {
lazy val codecRegistry = fromRegistries( fromProviders(
classOf[User],
// ... other case classes
), DEFAULT_CODEC_REGISTRY )
}
在将我的一个案例类更改为使用 Vector 而不是 Seq 后,我开始收到一些与编解码器映射相关的错误:
java.lang.ClassCastException: scala.collection.immutable.$colon$colon 不能转换为 scala.collection.immutable.Vector
case class 看起来像:
case class MyCaseClass(metadata: Metadata, data: Vector[Item])
case class 没有什么特别之处。切换到Vector 的主要原因是由于性能优势(基于index 的访问的访问时间恒定),更改为Vector 后的其他案例类工作正常,我只是偶尔遇到这个异常特定类,所以我不得不将其改回Seq。
什么可能导致这个异常?
【问题讨论】:
标签: mongodb scala vector mapping case-class