我正在改进Querydsl中的Scala支持,并遇到以下问题。下面是一个代码片段,说明了这个问题:Scala中的隐式转换问题
// framework types
class RelationalPath[T]
class RelationalPathAdapter[T, R <: RelationalPath[T]](p: R) { def someMethod = {} }
// domain types
class User
class QUser extends RelationalPath[User]
implicit def toAdapter[T, R <: RelationalPath[T]](p: R) = new RelationalPathAdapter[T,R](p)
val path = new QUser()
toAdapter(path).someMethod // DOESN'T COMPILE
path.someMethod // DOESN'T COMPILE
如何除了它的类型参数相匹配的隐式转换类型。我可以单独匹配,但不能同时匹配。
感谢。这确实有诀窍! –