Ответ
lateinit — это модификатор в Kotlin, позволяющий отложить инициализацию свойства не-nullable типа до момента его первого использования.
Особенности:
- Работает только с
var(не сval). - Тип свойства не может быть примитивом (например,
Int,Boolean). - Перед использованием нужно убедиться, что свойство инициализировано (иначе
UninitializedPropertyAccessException).
Пример:
class MyService {
lateinit var apiClient: ApiClient
fun initClient() {
apiClient = ApiClient.create()
}
fun fetchData() {
check(::apiClient.isInitialized) { "ApiClient not initialized!" }
apiClient.getData()
}
}
Альтернатива: Для nullable-свойств используйте var someProperty: Type? = null.