用于将类传递给函数的Scala语法

jlp*_*jlp 3 scala

有人可以在Scala中解释这种语法吗?我知道"cd"属于Class类型而"_"是通配符,但"<:"在这里做什么?谢谢.

   def func( cd: Class[_ <: CompressionCodec])
Run Code Online (Sandbox Code Playgroud)

Luk*_*itz 7

它用于Upper-type bound泛型.这意味着_必须是子类型CompressionCodec.与写入的低类型绑定泛型相比>:,它必须是超类型.

如果您了解Java,您可以将它们视为Class<? extends CompressionCodec>上类型绑定泛型和Class<? super CompressionCodec>较低类型绑定泛型.

点击这里查看更多!http://docs.scala-lang.org/tutorials/tour/upper-type-bounds.html