Зачем определять тип объекта в inline-функции

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

Ответ

Определение типа объекта в inline-функции помогает компилятору оптимизировать код, избегая накладных расходов на вызов функции. Inline-функции "встраиваются" в место вызова, и явное указание типа (например, через reified T) позволяет работать с ним как с обычным классом во время компиляции, избегая стирания типов (type erasure).

Пример с reified:

inline fun <reified T> checkType(item: Any): Boolean {
    return item is T
}

// Использование
val isString = checkType<String>("test") // true
val isInt = checkType<Int>("test") // false

Без reified проверка item is T была бы невозможна из-за type erasure.