Sobes.tech
Junior — Middle

Kas saaksite selgitada reified võtme mehhanismi tööpõhimõtet Kotlinis?

sobes.tech AI

Vastus AI-lt

Kotlinis kasutatakse mehhanismi reified koos inline-funktsioonidega, et säilitada teavet tüübi kohta jooksvalt, mis tavaliselt ei ole võimalik JVM-i tüübi kustutamise (type erasure) tõttu.

Kui funktsioon on deklareeritud kui inline ja tüübi parameeter on märgitud kui reified, saab seda tüüpi otse kasutada funktsiooni kehas, näiteks tüübi kontrollimiseks või eksemplaride loomiseks.

Näide:

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

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

Ilma reified ei ole sellist kontrolli võimalik teha, kuna T tüüp kustutatakse kompileerimise ajal.