CodeBlanks Logo Icon CodeBlanks

Özet - Reflection

KClass, KProperty ve call'i birleştirerek bir serialization framework yazarsın.

Özet - Reflection

Bu grupta reflection araçlarını gördün: KClass ile sınıf bilgisi, KProperty ile özellik erişimi, KFunction ile fonksiyon bilgisi, call ile dinamik çağrı ve annotation'lar ile meta veri.

Bu ders, üçünü birleştiren küçük bir görev içerir: bir sınıfın KClass referansını alıp simpleName ve members.size değerlerini yazdıracaksın. Bu kalıp, reflection'ın temelini bir araya getirir.

Uygulama Özet: Person KClass incele

class Person(val name: String, val age: Int) tanımla. main içinde val kc = Person::class al ve önce println(kc.simpleName), sonra println(kc.members.size) çağrılarını yaz.

Başlangıç kodu

Main.kt
// Person sınıfı: name ve age özellikleri
// main'de kc al, adını ve üye sayısını yazdır

Örnek çözüm

Main.kt
class Person(val name: String, val age: Int)

fun main() {
    val kc = Person::class
    println(kc.simpleName)
    println(kc.members.size)
}

Beklenen çıktı

Person
5

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bir fonksiyonu çalışma zamanında çağırmak için hangi metot kullanılır?

  • call Doğru cevap
  • let
  • apply
  • also

Açıklama: call ile KFunction çağrılır.

2 Reflection araçlarını eşle

Kavram Anlamı
KClass Sınıf bilgisi
KProperty Özellik erişimi
KFunction Fonksiyon bilgisi
annotations Meta veri

3 simpleName çağrısını tamamla

Soru
val kc = Person::class
println(kc.____)
Cevap
val kc = Person::class
println(kc.simpleName)

Açıklama: kc.simpleName sınıfın adını verir.

İleri seviye bölümündeki tüm dersler