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