Sobes.tech
Назад к вопросам
Junior — Middle
72

Можете объяснить, что означает ключевое слово lateinit в Kotlin и в каких случаях его используют?

Компании, где спрашивали
IBS

Ответ от нейросети

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 типами.