Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Android-Developer-Basic/Kotlin-7

Open more actions menu

Repository files navigation

Kotlin-7 - Generics

Код к занятию Kotlin-7 - Generics

Домашнее задание

В папке network находится прототип класса результата работы сетевого сервиса NetworkResponse, который может быть:

  • Success - для удачного результата
  • Failure - для ошибки

Задание 1.

Исправьте определение классов так, чтобы все присваивания под определениями компилировались без ошибок. Подсказки:

  • Используйте declaration type variance
  • Мы только ВОЗВРАЩАЕМ результат или ошибку (ковариантность по обоим параметрам)
  • Вспоминаем, что тип Nothing - это подтип любого другого типа

Задание 2.

Почините (правильно расставьте variance параметров) класс NetworkLogger таким образом, чтобы один универсальный экземпляр логгера можно было использовать для логирования любых ошибок:

  • processThrowables принимает ErrorLogger<Throwable>
  • processApiErrors принимает ErrorLogger<ApiException>

Приступайте ко второму заданию только после окончания работы над первым!

Задание 3 (со звездочкой)

Сделайте так, чтобы NetworkLogger имел возможность выдать список накопленных ошибок. Настройте типы таким образом, чтобы при сохранении условий заданий 1 и 2, в классе появилась функция:

fun dump(): List<Pair<LocalDateTime, E>>

About

Код к занятию Kotlin-7 - Generics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.