Kotlin和具有协方差的上部类型界

时间:2015-02-01 20:51:40

标签: kotlin

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的协方差。

1 个答案:

答案 0 :(得分:10)

Kotlin此时不支持下限。有时您可以通过定义扩展函数而不是成员来逃避:

fun <T> Foo<T>.or(other: T): T = ...