Sobes.tech
Junior — Middle

Môžete vysvetliť princíp fungovania kľúčového mechanizmu reified v Kotlin?

sobes.tech AI

Odpoveď od AI

V Kotlinu sa mechanizmom reified sa používa spolu s inline funkciami na zachovanie informácie o type počas behu, čo je zvyčajne nemožné kvôli vymazávaniu typov (type erasure) v JVM.

Keď je funkcia deklarovaná ako inline a parameter typu je označený ako reified, tento typ je možné použiť priamo v tele funkcie, napríklad na kontrolu typu alebo na vytváranie inštancií.

Príklad:

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

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

Bez reified takúto kontrolu nie je možné vykonať, pretože typ T sa pri kompilácii vymaže.