Sobes.tech
Junior — Middle

El tudná magyarázni a reified kulcsmechanizmus működési elvét Kotlinban?

sobes.tech MI

Válasz az MI-től

Kotlinban a reified mechanizmus inline-függvényekkel együtt használva megőrzi a típusinformációt futás közben, ami általában nem lehetséges a JVM típuseltávolítása (type erasure) miatt.

Amikor egy függvény inline-ként van deklarálva, és a típusparamétert reified-ként jelöljük, akkor a típus közvetlenül használható a függvény törzsében, például a típus ellenőrzésére vagy példányok létrehozására.

Példa:

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 nélkül ilyen ellenőrzés nem végezhető el, mivel a T típus eltűnik fordítás közben.