非修饰的通用返回类型:如何实现Kotlin的CoroutineContext.get

时间:2020-02-15 20:13:52

标签: generics kotlin kotlin-reified-type-parameters

我正在检查kotlin协程机制中使用的类和方法。 我偶然发现了CoroutineContext class,尤其是get-methodCoroutineContext是一个接口,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

但是正确的方法是吗?

0 个答案:

没有答案
相关问题