【发布时间】:2009-09-29 08:34:10
【问题描述】:
我希望能够像这样声明:
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 & B <: AnyRef] : Iterable[B]
}
也就是说,B 类型应该是A 的子类型和 AnyRef。这可能吗?
【问题讨论】:
使用复合类型:
trait Narrowable[A] extends Iterable[A] {
def narrow[B <: A with AnyRef] : Iterable[B]
}
【讨论】:
def narrow[B <: A | B <: AnyRef] : Iterable[B]
Either[A, AnyRef] 而不是输入边界。