Я проверял классы и методы, используемые в механизме сопрограммы kotlin. Я наткнулся на класс CoroutineContext и особенно это метод get . CoroutineContext
является интерфейсом, а get
определяется как:
abstract operator fun <E : Element> get(key: Key<E>): E?
Получение Key<E>
в качестве параметра, который просто определяется как
interface Key<E : Element>
Так что методов или свойства, определенные для этого ключа.
Обратите внимание, что E
в get
не является значением, а используется как тип возвращаемого значения. Я не могу придумать, как проверить, что (ненулевой) объект, который я хочу вернуть, на самом деле относится к этому типу E
, поскольку он не овеществлен.
Возможно (по какой-то причине) возможно просто приведите объект к E
//...
return objectThatShouldBeOfTypeE as E
Но правильный ли это путь к go?