Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Android: generic, type erasure, inline, cast, reified

Как работают дженерики в Kotlin «под капотом»?

Этот вопрос проверяет понимание реализации обобщённых типов в Kotlin и особенностей их компиляции.

Короткий ответ

Kotlin-дженерики реализованы через стирание типов (type erasure) на JVM, аналогично Java: информация о конкретном параметре типа недоступна в рантайме. Компилятор проверяет типы во время компиляции, а затем генерирует код без параметризации. Для сохранения информации о типе используют реифицированные (reified) параметры в inline-функциях.

Длинный ответ

Type Erasure:

  • Параметры типа удаляются в байткоде, остаётся Object или верхняя граница.

  • Ограничивает проверки типа в рантайме.

Компиляция:

  • Компилятор вставляет приведения типов (cast) там, где нужно.

  • Неявная безопасность гарантируется на этапе компиляции.

Работа с отражением:

  • Нельзя получить KClass<T> для общего типа без реификации.

Реификация через inline:

  • inline fun <reified T> Gson.fromJson(json: String): T — компилятор инлайнит и сохраняет T::class.

Пример:

fun <T> List<Any>.firstAs(): T {
    	return this.first() as T
}

inline fun <reified T> Gson.fromJson(json: String): T {
    	return this.fromJson(json, T::class.java)
}

Когда обращать внимание:

  • При работе с сериализацией/десериализацией.

  • При необходимости проверять тип параметра в рантайме.

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    5

Навыки

  • Android

    Android

Ключевые слова

#generic

#type erasure

#inline

#cast

#reified

Подпишись на Android Developer в телеграм

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.