Sobes.tech
Junior — Middle

Чӣ гуна кор бо рефлексия дар Kotlin анҷом дода мешавад?

sobes.tech AI

Ҷавоб аз AI

Дар Kotlin, кориши рефлексия тавассути пакети kotlin.reflect анҷом дода мешавад. Класс асосӣ KClass аст, ки дар вақти иҷрои синфро намояндагӣ мекунад. Бо ёрии рефлексия, метавон маълумот дар бораи хусусиятҳо, функсияҳо, конструкторҳо ва annotations-и синфҳоро ба даст овард.

Масалан барои гирифтани номи синф ва рӯйхати хусусиятҳои он:

import kotlin.reflect.full.memberProperties

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

fun main() {
    val kClass = User::class
    println("Номи синф: ${kClass.simpleName}")
    for (prop in kClass.memberProperties) {
        println("Хусусият: ${prop.name}")
    }
}

Ҳамчунин, мумкин аст функсияҳоро даъват кардан ва намунаҳоро тавассути рефлексия эҷод кардан, аммо барои ин баъзан зарур аст, ки API-и Java Reflection (java.lang.reflect) истифода шавад.

Рефлексия барои таҳлили динамикӣ ва кор бо объектҳо, масалан, дар сериализатсия, DI ё навиштани frameworkҳо, муфид аст.