lateinit var откладывает инициализацию non-null свойства; доступ до init бросает UninitializedPropertyAccessException.
Разбор
- Типично для DI/Android: поле инициализируется в
onCreate/inject.
- Только для
var non-null, не для primitive.
::prop.isInitialized проверяет состояние.
- Альтернативы: nullable, lazy, constructor injection.
Итог
lateinit — прагматичный escape hatch, не замена нормальной инициализации.