我想在我的 myTest 中混合使用通用类型。
case class CC(i:Int, s:String, s2:String)
case class Value[V](value: V)
def myTest[F](values: (CC ⇒ Value[F])*) = Unit
class QF[M](x: M) {
def eqs(v: M) = Value(x)
}
implicit def conversion[V](v: V): QF[V] = new QF(v)
myTest(_.i eqs 1)
myTest(_.s eqs "lol")
myTest(_.s eqs "lol", _.s2 eqs "lol2")
这段代码到目前为止是有效的,但是当我尝试进行混合类型时,我认为会出现协方差错误。
当我执行以下代码时:
myTest(_.i eqs 1, _.s eqs "lol")
我收到以下错误信息:
我得到了以下错误:
Error:(16, 13) type mismatch;
found : A$A135.this.CC => A$A135.this.Value[Int]
required: A$A135.this.CC => A$A135.this.Value[Any]
myTest(_.i eqs 1, _.s eqs "lol");}
^