Sobes.tech
Junior — Middle

Je možné použiť kľúčové slovo refied bez použitia inline v kóde?

sobes.tech AI

Odpoveď od AI

V Kotlinu sa klúčové slovo reified používa na získanie informácií o type počas behu v generických funkciách, ale vyžaduje, aby bola funkcia deklarovaná s modifikátorom inline.

To je spôsobené tým, že generické typy v Kotlinu sú zvyčajne vymazané počas kompilácie (type erasure), a bez inline nie je možné získať konkrétny typ počas behu.

Preto nie je možné použiť reified bez inline — kompilátor vypíše chybu.

Príklad správneho použitia:

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

Ak odstránite inline, reified nie je možné použiť.