0

我需要传递一个泛型类型别名来创建一个 MongoCollection,泛型类型别名本身也需要一个泛型类型参数。构建时,我收到一个错误,例如:unresolved spliceable type

我从中检索类型的特征如下:

trait ExtractTypeNest[T] {

  type nestType[P <: T]

  def get[P <: T](entity : P): nestType[P]

}

这将被具体定义如下:

implicit val nestModel: ExtractTypeNest[CaseClassModel] = new ExtractTypeNest[CaseClassModel] {

    override type nestType[P <: CaseClassModel] = AnotherCaseClass[P]

    override def get[P <: CaseClassModel](entity: P): AnotherCaseClass[P] = {
      AnotherCaseClass[P](???)
    }
  }

通用特征将被以下人员引用并最终使用:

class Repository[T: ExtractTypeNest : ClassTag](){
  val col : MongoCollection[ExtractTypeNest[T]#nestType[T]] = 
     db.getCollection[ExtractTypeNest[T]#nestType[T]]
}

getCollection 是抛出异常的地方。据我所知,因为我在这个地方没有 nestType 的隐含证据。我怎样才能提供,最好不改变存储库

4

0 回答 0