Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktOpObNl 25 of 123 menu
◀ ▶

Nullable-объекты в Kotlin

Переменная типа User? может хранить объект класса User или null. Без вопросительного знака в типе null присвоить нельзя:

class User(val name: String) fun main() { val found: User? = User("john") val missing: User? = null println(found?.name) println(missing) }

Свойство класса тоже может быть nullable. Тогда у объекта поле иногда пустое:

class User(val name: String) { var manager: User? = null } fun main() { val boss = User("eric") val worker = User("john") worker.manager = boss println(worker.manager?.name) }

Прямой доступ к свойству nullable-ссылки без проверки компилятор не пропустит. Сначала нужно убедиться, что ссылка не null, либо применить безопасный вызов ?.:

class User(val name: String) fun main() { val user: User? = null // println(user.name) // ошибка компиляции println(user?.name) }

Объявите var leader типа User?. Сначала запишите объект User, затем присвойте null.

Сделайте класс Team со свойством captain типа User?. Создайте команду без капитана и выведите имя капитана безопасным обращением.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить