Ответ
Плюсы:
- Позволяет избежать nullable-типов (
var someVar: SomeType? = null) - Удобен для инициализации в
onCreate()или других методах жизненного цикла - Читаемость кода: явно указывает, что переменная будет проинициализирована позже
Минусы:
- Риск
UninitializedPropertyAccessException, если доступ до инициализации - Только для
var(нельзя сval) - Не работает с примитивами (
Int,Booleanи т.д.)
Пример:
lateinit var apiService: ApiService
override fun onCreate() {
apiService = Retrofit.create()
// Теперь можно использовать apiService
}