Я использую Scala Mongo Driver с отображениями кодеков Case-Class в соответствии с его документацией, такой как:
object CodecProviders {
lazy val codecRegistry = fromRegistries( fromProviders(
classOf[User],
// ... other case classes
), DEFAULT_CODEC_REGISTRY )
}
После изменения одного из моих классов case для использования Vector
вместо Seq
Iначал получать некоторые ошибки, связанные с сопоставлениями кодеков:
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
.
Что может быть причиной этого исключения?