を上限を繰り返す必要があり、私はこのようになります特色があります:「私はできる、私はprocess[D >: T](doc: D)
でprocess
メソッドを宣言するとScalaの共変の型宣言はexlplicitly
trait Processor[+T <: Document] {
def process[D >: T <: Document](doc: D)
}
をDocument
クラスのメソッドにアクセスしないでください。
私はprocess
方法では、<: Document
、上限を繰り返す必要がない理由を私は知りません。
ので、二つの質問:
- これは、使用されることになっています方法は何ですか?
- なぜ型システムは特性定義から上限を自動的に取り上げませんか?
'process [D>:T](doc:D)'において、 'D'は' Document'のサブタイプである 'T'のスーパータイプなので、' D'は必ずしも 'Document' 。 – Harald