Как узнать тип объекта

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

Ответ

В Kotlin можно использовать оператор is для проверки типа объекта во время выполнения:

when (obj) {
    is String -> println("Это строка: ${obj.length} символов")
    is Int -> println("Это число: ${obj + 5}")
    else -> println("Неизвестный тип")
}

Или через javaClass для получения точного класса:

println(obj.javaClass.simpleName) // String, Integer и т.д.

Важно:

  • is работает с null-объектами (вернет false)
  • Для проверки на null используйте obj == null
  • В runtime можно проверить только конкретные классы, но не обобщенные типы (из-за стирания типов)