有人可以在Scala中解释这种语法吗?我知道" cd"是一种类型和" _"是一个通配符,但"<:"在这吗?谢谢。
def func( cd: Class[_ <: CompressionCodec])
答案 0 :(得分:7)
它用于Upper-type bound泛型。这意味着_
必须是CompressionCodec
的子类型。与用>:
编写的低类型绑定泛型相比,它必须是超类型。
如果您了解Java,您可以将它们视为上层类型绑定泛型的Class<? extends CompressionCodec>
和下层类型绑定泛型的Class<? super CompressionCodec>
。
点击此处了解更多信息! http://docs.scala-lang.org/tutorials/tour/upper-type-bounds.html