Выбор ответа Middle Null-safety обновлено
Как проверить инициализацию lateinit
Вопрос
Как проверить, что lateinit var adapter уже инициализирован?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: ::adapter.isInitialized. Для lateinit есть свойство ссылки на свойство: this::adapter.isInitialized.
Варианты ответа
adapter != nulladapter.isInitialized()- Никак, нужно ловить
NullPointerException ::adapter.isInitializedправильный ответ
Разбор
Для lateinit есть свойство ссылки на свойство: this::adapter.isInitialized. Сравнение adapter != null само обращается к свойству и бросит UninitializedPropertyAccessException до инициализации (не NPE). У самого объекта метода isInitialized() нет. Ловить исключение можно, но это антипаттерн.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.