我有以下代码:
trait DBO
trait BSONWriter[S]
trait HasWriter {
implicit def writer[T <: BSONWriter[_ <: DBO]]: T
}
一切都很好!除了当我将它混合到我objects
的map
.CanBuildFrom
- 模棱两可的隐含值:类型为 [T <: reactivemongo.bson.handlers.BSONWriter[_ <: traits.DBO]]=> T 的 trait Saving 中的方法 writer 和类型为 [A]=> scala 的对象缓冲区中的方法 canBuildFrom。 collection.generic.CanBuildFrom[scala.collection.mutable.Buffer.Coll,A,scala.collection.mutable.Buffer[A]] 匹配预期类型 scala.collection.generic.CanBuildFrom[scala.collection.mutable.Buffer[models. world.Star],traits.IsInWorld with org.bundlelib.traits.Groupable {def asBSON: reactivemongo.bson.AppendableBSONDocument},That]
现在我不明白,为什么会这样?混淆的隐式方法的签名是不同的!我怎样才能防止这种情况发生?