Как настроить границы нескольких типов в Scala?
Я хочу иметь возможность объявить что-то вроде этого:
trait Narrowable[A] extends Iterable[A] {
def narrow[B <: A & B <: AnyRef] : Iterable[B]
}
Что это, типа B
должен быть подтипом A
а также AnyRef
, Это возможно?
1 ответ
Решение
Используйте тип соединения:
trait Narrowable[A] extends Iterable[A] {
def narrow[B <: A with AnyRef] : Iterable[B]
}