我是新手,研究特征时发现了我不理解的语法
trait Holder[H <: service.SealedHolder[H]] {
val personId: String //ID.03
}
我想这可能是一个通用声明,但对于这种Scala语法Holder[H <: service.SealedHolder[H]]
答案 0 :(得分:2)
是的,这是一个通用声明,H
是SealedHolder[H]
的子类型。
您可以阅读有关类型界限的信息 https://apiumhub.com/tech-blog-barcelona/scala-type-bounds/ 和F界多态性 https://tpolecat.github.io/2015/04/29/f-bounds.html
例如F界限与特征Ordered
https://www.scala-lang.org/api/2.12.2/scala/math/Ordered.html
case class OrderedClass(n:Int) extends Ordered[OrderedClass] {
def compare(that: OrderedClass) = this.n - that.n
}