Какие плюсы и минусы lateinit

«Какие плюсы и минусы lateinit» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Плюсы:

  • Позволяет избежать nullable-типов (var someVar: SomeType? = null)
  • Удобен для инициализации в onCreate() или других методах жизненного цикла
  • Читаемость кода: явно указывает, что переменная будет проинициализирована позже

Минусы:

  • Риск UninitializedPropertyAccessException, если доступ до инициализации
  • Только для var (нельзя с val)
  • Не работает с примитивами (Int, Boolean и т.д.)

Пример:

lateinit var apiService: ApiService  

override fun onCreate() {  
    apiService = Retrofit.create()  
    // Теперь можно использовать apiService  
}