Мы используем файлы cookie для улучшения работы сайта и предоставления вам персонализированного опыта. Правила использования файлов cookie можно найти в нашей политике конфиденциальности
lateinit
используется для отложенной инициализации изменяемых свойств (var
), которые не могут быть nullable и будут инициализированы позже, например, в методе жизненного цикла активности или фрагмента. Компилятор не гарантирует инициализацию, и доступ к неинициализированному свойству вызовет исключение UninitializedPropertyAccessException
.
by lazy {}
используется для отложенной инициализации неизменяемых свойств (val
). Инициализация выполняется при первом доступе к свойству, и результат кешируется. Это потокобезопасно по умолчанию и гарантирует, что инициализатор будет вызван только один раз.
Признак | lateinit | by lazy {} |
---|---|---|
Применяется к | var | val |
Nullability | Не nullable | Не nullable |
Гарантия инициализации | Нет (только разработчиком) | Да (при |
lateinit
используется для отложенной инициализации изменяемых свойств (var
), которые не могут быть nullable и будут инициализированы позже, например, в методе жизненного цикла активности или фрагмента. Компилятор не гарантирует инициализацию, и доступ к неинициализированному свойству вызовет исключение UninitializedPropertyAccessException
.
by lazy {}
используется для отложенной инициализации неизменяемых свойств (val
). Инициализация выполняется при первом доступе к свойству, и результат кешируется. Это потокобезопасно по умолчанию и гарантирует, что инициализатор будет вызван только один раз.
Признак | lateinit | by lazy {} |
---|---|---|
Применяется к | var | val |
Nullability | Не nullable | Не nullable |
Гарантия инициализации | Нет (только разработчиком) | Да (при |
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.