XXX<U, in T: U> 在科特林中是什么意思
what does XXX<U, in T: U> mean in kotlin
TimeoutCoroutine<U, in T: U>
在 kotlin 中是什么意思。我在读这个
private class TimeoutCoroutine<U, in T: U>(
@JvmField val time: Long,
uCont: Continuation<U> // unintercepted continuation
)
但是实在不明白这个是什么意思。有人可以解释吗?非常感谢!
TimeoutCoroutine 是一个 generic class 需要两种类型的人 :
U,随便你怎么说
直接或间接扩展U类型的T(由T: U
定义)
in
关键字,根据documentation
It makes a type parameter contravariant, meaning it can only be
consumed and never produced.
因此您将能够使用 T 类型,但永远不会创建它的实例或在方法中返回它。
例如:
class Foo<in T> {
fun bar(a: T) = a
}
bar 函数将向您显示一个错误,指出此方法使用 T 类型 out
位置而不是 in
因为您返回的对象具有 T 类型
TimeoutCoroutine<U, in T: U>
在 kotlin 中是什么意思。我在读这个
private class TimeoutCoroutine<U, in T: U>(
@JvmField val time: Long,
uCont: Continuation<U> // unintercepted continuation
)
但是实在不明白这个是什么意思。有人可以解释吗?非常感谢!
TimeoutCoroutine 是一个 generic class 需要两种类型的人 :
U,随便你怎么说
直接或间接扩展U类型的T(由
T: U
定义)in
关键字,根据documentationIt makes a type parameter contravariant, meaning it can only be consumed and never produced.
因此您将能够使用 T 类型,但永远不会创建它的实例或在方法中返回它。
例如:
class Foo<in T> {
fun bar(a: T) = a
}
bar 函数将向您显示一个错误,指出此方法使用 T 类型 out
位置而不是 in
因为您返回的对象具有 T 类型