Выбор ответа Middle DI: Hilt и Koin спрашивают часто обновлено
Когда Hilt проверяет граф
Вопрос
Что произойдёт, если для параметра @Inject constructor в Hilt нет биндинга?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Сборка упадёт: граф Dagger/Hilt проверяется при компиляции. Hilt построен на Dagger, который генерирует код фабрик и проверяет полноту графа при компиляции (через KSP или kapt).
Варианты ответа
- Приложение упадёт при открытии экрана, где нужен этот объект
- Hilt подставит
null, и упадёт уже первый вызов метода зависимости - Hilt создаст объект через рефлексию по публичному конструктору
- Сборка упадёт: граф Dagger/Hilt проверяется при компиляцииправильный ответ
Разбор
Hilt построен на Dagger, который генерирует код фабрик и проверяет полноту графа при компиляции (через KSP или kapt). Отсутствующий биндинг даёт ошибку сборки MissingBinding с путём зависимости. Рефлексии и подстановки null нет. Падение при запуске это поведение рантайм-DI вроде Koin без проверки модулей.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.