Sobes.tech
Junior — Middle

Ako sa v Kotlinu vykonáva práca s reflexiou?

sobes.tech AI

Odpoveď od AI

V Kotlinu sa spracovaním reflexie zaobera pomocou balíka kotlin.reflect. Hlavná trieda je KClass, ktorá reprezentuje triedu počas behu. Prostredníctvom reflexie je možné získať informácie o vlastnostiach, funkciách, konštruktoroch a anotáciách tried.

Príklad na získanie názvu triedy a zoznamu jej vlastností:

import kotlin.reflect.full.memberProperties

class User(val name: String, val age: Int)

fun main() {
    val kClass = User::class
    println("Názov triedy: ${kClass.simpleName}")
    for (prop in kClass.memberProperties) {
        println("Vlastnosť: ${prop.name}")
    }
}

Je tiež možné volať funkcie a vytvárať inštancie pomocou reflexie, ale na to je niekedy potrebné použiť Java Reflection API (java.lang.reflect).

Reflexia je užitočná pre dynamickú analýzu a prácu s objektmi, napríklad pri serializácii, DI alebo písaní frameworkov.