Sobes.tech
Back to questions
Junior — Middle
87

Можете объяснить, что означает термин 'reified' в контексте Kotlin и как он используется?

Companies where asked
ИннотехИннотех
Effective Mobile

Answer from AI

sobes.tech AI

В Kotlin термин «reified» используется в контексте обобщённых функций с инлайновым модификатором inline. Обычно в Kotlin из-за стирания типов (type erasure) во время выполнения информация о типах обобщений недоступна. Однако, если функция объявлена как inline и параметр типа помечен как reified, то компилятор сохраняет информацию о конкретном типе, и её можно использовать внутри функции.

Это позволяет, например, делать проверки типа или создавать экземпляры типа T напрямую, что обычно невозможно с обычными обобщениями.

Пример использования:

inline fun <reified T> isInstance(value: Any): Boolean {
    return value is T
}

fun main() {
    println(isInstance<String>("test")) // true
    println(isInstance<Int>("test"))    // false
}

Здесь reified позволяет использовать оператор is с типом T, который обычно недоступен из-за стирания типов.