Обложка канала

Android Broadcast

Качественная выборка Android Dev новостей, тезисы важных новостей и статей, личное мнение

Android Broadcast

7 лет назад
Открыть в
#Kotlin

Safely accessing lateinit variables

Рецепт безопасного обращения к lateinit переменным в Kotlin, которое появилось в версии 1.2:
lateinit var fullName: String

if (::fullName.isInitialized) {
print("Hi, $fullName")
}

Только не проще ли бы использовать nullable property и использовать null со старой доброй проверкой if (fullName != null).

Моя рекомендация - не стоит убегать от nullable значений, lateinit должно использовать только в случаях когда у вас инициализация происходит не в конструкторе, а в методе который вызывается сразу за ним, например Activity.onCreate(). Причем метод откуда приходит значения не должен быть асинхронным.

Заменить lateinit можно nullable property или делегатом lazy. А вообще используйте его только с Dagger в Android компонентах.