协方差的Kotlin和上界类型

Kotlin是否支持协方差设置中的上限/下限类型边界。 例如,我想说

class Foo<out T> { fun or<U of T or greater>(other: U): <U> = ... } 

这在斯卡拉将是

 class Foo[+T] { def or[U >: T](other: U): U = ... } 

但编译器似乎并不喜欢这样,它抱怨类型参数T的协方差。

Kotlin在这一点上不支持下界。 有时你可以通过定义一个扩展函数来代替一个成员:

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