Что такое приведение типов

«Что такое приведение типов» — вопрос из категории ООП, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Приведение типов (type casting) — это преобразование значения одного типа в другой. В Kotlin/Java есть два вида:

  1. Явное приведение (explicit) — требует указания типа:
val num: Int = 42
val longNum: Long = num.toLong() // явное
  1. Неявное приведение (implicit) — автоматическое, когда компилятор уверен в безопасности:
val longNum: Long = 42L
val doubleNum: Double = longNum.toDouble()

Важно:

  • В Kotlin нет автоматического приведения для чисел (в отличие от Java)
  • Для классов используется оператор as (опасный) или as? (безопасный):
val obj: Any = "String"
val str: String = obj as String // может выбросить ClassCastException

Smart casts работают, когда компилятор может доказать тип:

if (obj is String) {
    println(obj.length) // автоматическое приведение
}