web-dev-qa-db-ja.com

Scalaで複数の型境界を設定するにはどうすればよいですか?

私はこのようなことを宣言できるようにしたいと思います:

trait Narrowable[A] extends Iterable[A] {

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

}

つまり、タイプBは両方ともAおよびAnyRefのサブタイプである必要があります。これは可能ですか?

66
oxbow_lakes

複合タイプを使用:

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