Ответ
Для проверки инициализации lateinit поля используйте ::fieldName.isInitialized. Это рефлексивное свойство доступно с Kotlin 1.2.
Пример:
class Example {
lateinit var name: String
fun checkInit() {
if (::name.isInitialized) {
println("Initialized: $name")
} else {
println("Not initialized")
}
}
}
Важно:
- Работает только с
lateinit var(не сvalили nullable типами). - Вызов на не-
lateinitполе вызовет исключение. - Не рекомендуется часто использовать в продакшн-коде (рефлексия имеет накладные расходы).