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.