Sobes.tech
Junior — Middle

Kā Kotlin veic refleksijas darbu?

sobes.tech AI

Atbilde no AI

Kotlinā ar refleksiju strādā ar kotlin.reflect paketi. Galvenā klase ir KClass, kas pārstāv klasi izpildes laikā. Ar refleksiju var iegūt informāciju par klases īpašībām, funkcijām, konstruktoriem un anotācijām.

Piemērs, kā iegūt klases nosaukumu un tās īpašību sarakstu:

import kotlin.reflect.full.memberProperties

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

fun main() {
    val kClass = User::class
    println("Klases nosaukums: ${kClass.simpleName}")
    for (prop in kClass.memberProperties) {
        println("Īpašība: ${prop.name}")
    }
}

Tāpat ir iespējams izsaukt funkcijas un veidot instances, izmantojot refleksiju, bet dažreiz tam ir nepieciešams izmantot Java Reflection API (java.lang.reflect).

Refleksija ir noderīga dinamiskai analīzei un darbam ar objektiem, piemēram, serializācijā, DI vai frameworku rakstīšanā.