3
我有一種情況,我有一個typeclass與參數必須是不相容的。如果我有一個爲基類和子類定義的隱式對象,我會得到一個「模糊」的錯誤,它不知道要選擇哪個隱式對象。有沒有一種方法來確定隱式對象的優先級?我已經看到了隱式轉換的優先級示例,但從來沒有用於類型類。謝謝Typeclass優先
trait Coded[-X] { // contravariant
val x: Int
}
def printCode[O1](p1: O1)(implicit ev: Coded[O1]) =
println(ev.x)
class Baseclass
class Subclass extends Baseclass
object TEST {
implicit object code1 extends Coded[Baseclass] { val x = 5 }
implicit object code2 extends Coded[Subclass ] { val x = 6 }
}
import TEST._
printCode(new Subclass) // error: ambiguous
這就是它!非常感謝。 – vertexshader