我有一个总和类型,映射:
sealed trait Mapping
final case class XMapping(a:String)
final case class FallbackMapping(mappings: List[Mapping])
我有一个类型类定义如下:
final case class Param(x:String)
trait ParameterLoader[T] {
def load(mapping:T) : List[Param]
}
在某些情况下:
object DefaultParameterLoaders {
implicit val xParameterLoader= new QueryParameterLoader[XMapping] {
override def load(mapping: XMapping): List[Param] = List(Param(mapping.a))
}
implicit val fallbackParameterLoader = new ParameterLoader[FallbackMapping] {
override def load(mapping: FallbackMapping): List[Param] =
mapping.mappings.flatMap(x => ???)
}
}
我找不到将隐式实例传递给上面的 flatMap 的方法。我得到的错误是我缺少 ParameterLoader [Mapping] 的实例。有没有办法告诉编译器它应该使用范围内的任何类型类实例?