我需要传递一个泛型类型别名来创建一个 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 的隐含证据。我怎样才能提供,最好不改变存储库