Sobes.tech
Junior — Middle

Milyen művelethez kötelező a reified használata Kotlinban?

sobes.tech MI

Válasz az MI-től

Kotlinban a reified kulcsszó kötelező, amikor generikus függvényekkel dolgozunk, és hozzáférés szükséges a paraméter típusához futás közben. Általában a típus elmosódása (type erasure) miatt a generikus típusokra vonatkozó információk nem érhetők el futás közben, de az inline és reified segítségével ez az információ megőrizhető és felhasználható.

Egy tipikus példa egy olyan függvény, amely példányt hoz létre egy osztályból vagy típusellenőrzést végez:

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

val result = isInstance<String>("test") // true

Reified nélkül nem lehet T-t használni az is operátorban vagy T::class-t szerezni.

Ezért a reified szükséges olyan műveletekhez, ahol futás közben információt kell szerezni a generikus paraméter típusáról, például típusellenőrzésekhez, példányosításhoz, osztályok lekéréséhez stb.