Sobes.tech
Junior — Middle

Можете ли да објасните принцип рада reified механизма у Kotlin-у?

sobes.tech АИ

Одговор од АИ

У Kotlin механизмот reified се користи заедно со inline функции за зачувување на информацијата за типот во време на извршување, што обично е невозможно поради бришењето на типови (type erasure) во JVM.

Кога функцијата е декларирана како inline и параметарот на типот е означен како reified, тој тип може директно да се користи во телото на функцијата, на пример, за проверка на типот или создавање на инстанци.

Пример:

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, таква проверка не е возможна, бидејќи типот T се брише при компилацијата.