Как настроить несколько ограничений типов в 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] }
Ответ 1 Использовать составной тип: trait Narrowable[A] extends Iterable[A] { def narrow[B <: A with AnyRef] : Iterable[B] }