我有一个看起来像这样的特征:
trait Processor[+T <: Document] {
def process[D >: T <: Document](doc: D)
}
如果我使用process
声明process[D >: T](doc: D)
方法,则无法访问Document
类中的方法。
我不知道为什么我需要在<: Document
方法中重复上限process
。
所以,有两个问题:
答案 0 :(得分:2)
您方法的上限位于D
,而不是T
。假设您没有设置上限,那么D
可以是T
也可以是任何内容,例如Any
。因此,编译器必须假设D
可能是Any
,因此无法为您提供更多方法。