Kotlin是否支持协方差设置中的上/下类型边界。例如,我想说
class Foo<out T> {
fun or<U of T or greater>(other: U): <U> = ...
}
在Scala中将是
class Foo[+T] {
def or[U >: T](other: U): U = ...
}
但编译器似乎并不喜欢这样,它抱怨类型参数T的协方差。
答案 0 :(得分:10)
Kotlin此时不支持下限。有时您可以通过定义扩展函数而不是成员来逃避:
fun <T> Foo<T>.or(other: T): T = ...