如何在Scala中设置多个类型边界?

时间:2009-09-29 08:34:10

标签: generics scala

我希望能够宣布这样的事情:

trait Narrowable[A] extends Iterable[A] {

    def narrow[B <: A & B <: AnyRef] : Iterable[B]

}

即,类型B应该是A AnyRef的子类型。这可能吗?

1 个答案:

答案 0 :(得分:104)

使用复合类型:

trait Narrowable[A] extends Iterable[A] {
  def narrow[B <: A with AnyRef] : Iterable[B]
}