协方差的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 = ...
- 什么Java 8 Stream.collect等价物在标准Kotlin库中可用?
- 在片段ViewPager不工作的第二次
- Kotlin:单元测试期间@JvmStatic方法NoClassDefFoundError / ClassNotFoundException
- 在Kotlin函数中使用@Qualifier
- 未解决的参考:LinearLayoutManager / RecyclerView
- 为什么我们使用“伴侣对象”作为Kotlin中Java静态字段的一种替代?
- Google Guava Invokedynamic要求–min-sdk-version> = 26
- 混合Kotlin + Java与Maven,未解决的参考
- Kotlin反射 – 获取一个类的所有字段名称