我想用<:
而不是=
(如在此处的答案Scala Upper Bounds : value is not a member of type parameter)覆盖特征中的抽象类型。重写抽象类型的蛋糕模式不适用于Upper Type Bounds
我想用蛋糕模式,但这不起作用,我不明白为什么?
trait A {
def ping = println("ping")
}
trait Cake {
type T
}
trait S { this: Cake =>
type T = A
def t: T
t.ping
}
OK,这个例子来看,但在我的实际使用情况下,我想<:
,而不是覆盖型与=
。它似乎是不可能的访问T功能,为什么呢?
trait S { this: Cake =>
type T <: A
def t: T
t.ping
}
返回一个错误value ping is not a member of S.this.T