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ť.