Код к занятию Kotlin-7 - Generics
В папке network находится прототип класса
результата работы сетевого сервиса NetworkResponse
, который может быть:
Success
- для удачного результатаFailure
- для ошибки
Исправьте определение классов так, чтобы все присваивания под определениями компилировались без ошибок. Подсказки:
- Используйте declaration type variance
- Мы только ВОЗВРАЩАЕМ результат или ошибку (ковариантность по обоим параметрам)
- Вспоминаем, что тип Nothing - это подтип любого другого типа
Почините (правильно расставьте variance параметров) класс NetworkLogger таким образом, чтобы один универсальный экземпляр логгера можно было использовать для логирования любых ошибок:
processThrowables
принимаетErrorLogger<Throwable>
processApiErrors
принимаетErrorLogger<ApiException>
Приступайте ко второму заданию только после окончания работы над первым!
Сделайте так, чтобы NetworkLogger имел возможность выдать список накопленных ошибок. Настройте типы таким образом, чтобы при сохранении условий заданий 1 и 2, в классе появилась функция:
fun dump(): List<Pair<LocalDateTime, E>>