我正在检查kotlin协程机制中使用的类和方法。
我偶然发现了CoroutineContext class,尤其是get-method。
CoroutineContext
是一个接口,get
定义为:
abstract operator fun <E : Element> get(key: Key<E>): E?
获取Key<E>
作为参数,其简单定义为
interface Key<E : Element>
因此,没有为该键定义任何方法或属性。
请注意,E
中的get
并未具体化,但被用作返回类型。我想不出一种方法来检查我要返回的(非null)对象实际上是E
类型的对象,因为它没有被验证。
(出于某种原因)可以将对象简单地投射到E
//...
return objectThatShouldBeOfTypeE as E
但是正确的方法是吗?