Sobes.tech
Junior — Middle

Как се извършва работата с рефлексия в Kotlin?

sobes.tech AI

Отговор от AI

В Kotlin работата с рефлексия се осъществява чрез пакета kotlin.reflect. Основният клас е KClass, който представлява клас по време на изпълнение. Чрез рефлексия може да се получи информация за свойства, функции, конструктори и анотации на класовете.

Пример за получаване на името на класа и списъка с неговите свойства:

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}")
    }
}

Също така, може да се извикват функции и създават екземпляри чрез рефлексия, но за това понякога е необходимо да се използва Java Reflection API (java.lang.reflect).

Рефлексията е полезна за динамичен анализ и работа с обекти, например при сериализация, DI или при писане на рамки (frameworks).