6
编译器告诉我这不能带来以下警告:“逆变类型A发生在类型>中的协变位置:A <:任何类型B.”警告在撰写方法的类型参数中。从逻辑上讲,类型定义对我来说很有意义。如果编译器没有问题,那么,为什么问题与之相反?为什么Scala编译器会说在类型为>:A <:类型B的任何类型的协变位置出现逆变类型A?
trait Foo[-A]{
def compose[B >: A](t: Foo[B]): Foo[A] = t andThen this
def andThen[B <: A](t: Foo[B]): Foo[B]
}
所有我需要的是一个例子,它分解了。然后我很高兴。