0Pricing
Kotlin Academy · Ders

Kotlin Yansıması: KClass, KFunction, KProperty

KClass kullanarak sınıf üst verileri arasında gezinin ve üyeleri yansımayla inceleyin.

Kotlin Yansıması: KClass, KFunction, KProperty, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Kotlin Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Kotlin Academy kursu toplamda 4 dersten oluşur.

Yansıma Nedir

Yansıma, kodun kendi yapısını çalışma zamanında incelemesine ve çağırmasına olanak tanır: sınıflar, işlevler, özellikler, ek açıklamalar ve kurucular. Kotlin, JVM yansıma API'sini kotlin.reflect paketi altında kendine özgü ve daha zengin türlerle sunar.

KClass Elde Etme

Bir türe veya örneğe ::class uygulayarak bir KClass başvurusu elde edin:

val klass: KClass<String> = String::class
val instance: KClass<out Any> = "hello"::class
println(klass.simpleName)  // "String"

KClass Özellikleri

KClass, sınıfla ilgili üst verileri sunar:

val klass = String::class
println(klass.simpleName)        // "String"
println(klass.qualifiedName)     // "kotlin.String"
println(klass.isAbstract)        // false
println(klass.constructors.size) // number of constructors

KFunction: Çağrılabilir Başvurular

Bir KFunction başvurusu elde etmek için ::functionName kullanın. Parametrelerini inceleyebilir ve onu çağırabilirsiniz:

fun greet(name: String) = "Hello, $name!"

val fn: KFunction<String> = ::greet
println(fn.name)           // "greet"
println(fn.call("Kotlin")) // "Hello, Kotlin!"

Parametreleri İnceleme

KFunction.parameters, ad, tür ve isteğe bağlılık bilgilerine sahip KParameter nesnelerinden oluşan bir liste döndürür:

fun add(a: Int, b: Int) = a + b

::add.parameters.forEach {
    println("${it.name}: ${it.type}")
}
// a: kotlin.Int
// b: kotlin.Int

KProperty: Özellik Başvuruları

Özellik başvuruları, bir özelliği birinci sınıf nesne olarak yakalar. KProperty0, alıcısı olmayan özellikler içindir; KProperty1 ise üye özellikler içindir.

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

val prop: KProperty1<User, String> = User::name
val user = User("Alice", 30)
println(prop.get(user))  // "Alice"

KMutableProperty ile Değiştirilebilir Özellikler

var özelliklerinde başvuru bir KMutableProperty1 olur ve bu başvuru ayrıca bir set işlevine sahiptir:

class Box(var value: Int)

val prop: KMutableProperty1<Box, Int> = Box::value
val box = Box(10)
prop.set(box, 42)
println(box.value)  // 42

Tüm Üyeleri Listeleme

KClass.members, görünür tüm üyeleri (işlevler + özellikler) döndürür. KClass.declaredMemberProperties ise yalnızca o sınıfta bildirilen özellikleri döndürür.

data class Point(val x: Int, val y: Int)

Point::class.declaredMemberProperties.forEach {
    println(it.name)  // "x", "y"
}

KClass ile Örnekler Oluşturma

KClass.createInstance() işlevini çağırın (parametresiz bir kurucu gerektirir) veya tam denetim için KClass.constructors kullanın:

class Counter {
    var count = 0
}
val c = Counter::class.createInstance()
c.count = 5
println(c.count)  // 5

Kotlin Reflect Bağımlılığı

Kotlin yansıması, kotlin-reflect yapı ürününü gerektirir (standart kütüphaneye dahil değildir). Bu ürünü derlemenize ekleyin:

// build.gradle.kts
implementation("org.jetbrains.kotlin:kotlin-reflect")

Performans Notu

Yansıma, doğrudan koddan önemli ölçüde daha yavaştır. KClass, KFunction ve KProperty başvurularını başlangıçta önbelleğe alın. Bunları yoğun döngülerde çağırmaktan kaçının. Çoğu araç ve çatı kodu için bu maliyet kabul edilebilir.

Hızlı Kontrol

Bir üye özelliğine başvuruyu temsil eden ve değerinin bir örnekten okunmasına olanak tanıyan Kotlin türü hangisidir?

Özet: Kotlin Yansıması

Temel türler:

  • KClass — sınıf üst verileri, kurucular ve üyeler
  • KFunction — çağrılabilir başvurular, parametreler ve çağırma
  • KProperty1 / KMutableProperty1 — özellik başvuruları, get/set
  • Sınıf yolunda kotlin-reflect bulunması gerekir
  • Başvuruları önbelleğe alın; yoğun çalışma yollarında kullanmaktan kaçının

Sıkça Sorulan Sorular

“Kotlin Yansıması: KClass, KFunction, KProperty” dersi ücretsiz mi?

Evet — “Kotlin Yansıması: KClass, KFunction, KProperty” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Kotlin Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Kotlin Academy kursu toplamda 4 dersten oluşur.

“Kotlin Yansıması: KClass, KFunction, KProperty” dersinde ne öğreneceğim?

KClass kullanarak sınıf üst verileri arasında gezinin ve üyeleri yansımayla inceleyin. Kotlin Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Kotlin Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Kotlin Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Kotlin Yansıması: KClass, KFunction, KProperty” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Kotlin Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Kotlin Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Kotlin Yansıması: KClass, KFunction, KProperty
  2. Özel Ek Açıklamalar Oluşturma ve Hedefleme
  3. Çalışma Zamanında Ek Açıklamaları Okuma
  4. Yansıma Tabanlı Doğrulama ve Eşleme
← Kotlin Academy Sayfasına Dön