Оператор as
Оператор as выполняет приведение типа объекта к указанному типу.
Если приведение невозможно, выбрасывается исключение ClassCastException.
Имеет две формы: обычное приведение as и безопасное приведение as?.
Синтаксис
Обычное приведение:
val obj: Any = "Hello"
val str: String = obj as String
Безопасное приведение:
val obj: Any = "Hello"
val str: String? = obj as? String
Пример
Приведение типа Any к String:
val obj: Any = "Kotlin"
val str: String = obj as String
println(str)
Результат выполнения кода:
String "Kotlin"
Пример
Попытка приведения несовместимых типов вызывает исключение:
val obj: Any = 123
try {
val str: String = obj as String
} catch (e: ClassCastException) {
println("Error: ${e.message}")
}
Результат выполнения кода:
Error: java.lang.Integer cannot be cast to java.lang.String
Пример
Безопасное приведение с оператором as? возвращает null при ошибке:
val obj: Any = 123
val str: String? = obj as? String
println(str)
Результат выполнения кода:
null
Пример
Приведение с проверкой типа через is:
val obj: Any = "Hello"
if (obj is String) {
val length = obj.length
println(length)
}
Результат выполнения кода:
Int 5
Смотрите также
-
оператор
is,
который проверяет тип объекта