Можете объяснить, что означает ключевое слово lateinit в Kotlin и в каких случаях его используют?
Answer from AI
sobes.tech AI
Ключевое слово lateinit в Kotlin используется для объявления переменных, которые будут инициализированы позже, но не в момент объявления. Оно применяется только к переменным типа var (изменяемым) и только для свойств класса, не для локальных переменных.
Основная задача lateinit — избежать необходимости инициализировать переменную сразу, при этом не делая её nullable. Это удобно, когда инициализация зависит от внешних факторов, например, при внедрении зависимостей или в Android при инициализации компонентов в методе onCreate.
Пример:
class MyActivity : AppCompatActivity() {
private lateinit var myTextView: TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
myTextView = findViewById(R.id.textView)
myTextView.text = "Привет, мир!"
}
}
Если попытаться обратиться к lateinit переменной до её инициализации, будет выброшено исключение UninitializedPropertyAccessException.
Таким образом, lateinit позволяет отложить инициализацию переменной, сохраняя при этом удобство работы с не-nullable типами.