Junior — Middle
Kotlin'da refleksiya bilan qanday ishlash mumkin?
sobes.tech AI
AIdan javob
Kotlinda refleksiya bilan ishlash kotlin.reflect paket yordamida amalga oshiriladi. Asosiy sinf KClass bo'lib, u bajarilish vaqtida sinfni ifodalaydi. Refleksiya yordamida sinflarning xususiyatlari, funksiyalari, konstruktorlari va annotatsiyalar haqida ma'lumot olish mumkin.
Sinf nomi va uning xususiyatlar ro'yxatini olish uchun misol:
import kotlin.reflect.full.memberProperties
class User(val name: String, val age: Int)
fun main() {
val kClass = User::class
println("Sinf nomi: ${kClass.simpleName}")
for (prop in kClass.memberProperties) {
println("Xususiyat: ${prop.name}")
}
}
Shuningdek, funksiyalarni chaqirish va nusxalar yaratish uchun refleksiyadan foydalanish mumkin, ammo ba'zan Java Reflection API (java.lang.reflect) dan foydalanish talab qilinadi.
Refleksiya dinamik tahlil va ob'ektlar bilan ishlash uchun foydalidir, masalan, serializatsiya, DI yoki framework yozishda.