1. ホーム
  2. generics

Scalaで複数の型境界を設定するには?

2023-09-01 03:42:08

質問

このような宣言をできるようにしたいのですが。

trait Narrowable[A] extends Iterable[A] {

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

}

それ、タイプの B のサブタイプでなければなりません。 A AnyRef . これは可能なのでしょうか?

どのように解決するのですか?

複合型を使用します。

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