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

Приведение типа as в Kotlin

Переменная типа родителя не даёт вызывать методы потомка. Если в runtime там лежит Employee, тип сужают оператором as:

open class User { open fun getName(): String = "user" } class Employee : User() { fun getSalary(): Int = 1000 } fun main() { val user: User = Employee() val employee = user as Employee println(employee.getSalary()) }

Неверное приведение бросает исключение. Безопасный вариант - as?: при неудаче вернётся null:

fun main() { val user: User = User() val employee = user as? Employee println(employee) }

После успешной проверки is компилятор сам сужает тип в той же ветке - отдельный as не нужен:

fun printSalary(user: User) { if (user is Employee) { println(user.getSalary()) } }

Пусть переменная типа User ссылается на объект класса Employee.

Приведите переменную к типу Employee с помощью as и выведите на экран зарплату сотрудника.

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