Чьим наследником является Deferred

«Чьим наследником является Deferred» — вопрос из категории Coroutines и Flow, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Deferred в Kotlin является наследником интерфейса Job из корутин. Он расширяет Job, добавляя возможность завершения с результатом (T) или исключением.

Пример:

val deferred: Deferred<String> = async { 
    delay(1000)
    "Result" 
}
println(deferred.await()) // "Result"

Ключевые особенности:

  • Может быть отменен, как Job.
  • Предоставляет await() для получения результата.
  • Может завершиться с исключением (если корутина выбросила ошибку).