Junior — Middle
Alkalmazható-e a refied kulcsszó inline használata nélkül a kódban?
sobes.tech MI
Válasz az MI-től
Kotlinban a reified kulcsszó arra szolgál, hogy futásidőben információt szerezzen a típusról generikus függvényekben, de ez megköveteli, hogy a függvény inline módosítóval legyen deklarálva.
Ez azért van, mert a Kotlinban a generikus típusokat általában a fordítás során (type erasure) törlik, és inline nélkül nem lehet konkrét típust szerezni futásidőben.
Ezért a reified nem használható inline nélkül — a fordító hibát fog jelezni.
Helyes használat példája:
inline fun <reified T> isInstance(value: Any): Boolean {
return value is T
}
Ha eltávolítjuk az inline-t, a reified nem használható.