Yansımanın Temelleri
Çalışma zamanında türleri inceleyin
Yansımanın Temelleri, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 3. 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ıtma Nedir?
Yansıtma, bir programın çalışma zamanında kendi yapısını inceleyip değiştirebilme yeteneğidir: sınıflar, özellikler, işlevler ve anotasyonlar.
Kotlin yansıtması kotlin.reflect paketinde bulunur ve KClass merkezinde çalışır.
KClass Elde Etme
Bir KClass nesnesi elde etmek için bir tür veya örnek üzerinde ::class söz dizimini kullanın.
class Robot
fun main() {
val fromType = Robot::class
val fromInstance = Robot()::class
println(fromType.simpleName)
println(fromInstance.simpleName)
}Sınıf Adları
Bir KClass, simpleName ve qualifiedName değerlerini sunar. Tam nitelikli ad, paket yolunu da içerir.
class Engine
fun main() {
val k = Engine::class
println(k.simpleName)
println(k.qualifiedName)
}Özellikleri İnceleme
memberProperties, bir sınıfın özelliklerini listeler. Her biri, name değerini sorabileceğiniz bir KProperty nesnesidir.
import kotlin.reflect.full.memberProperties
class Point(val x: Int, val y: Int)
fun main() {
for (p in Point::class.memberProperties) {
println(p.name)
}
}Özellik Değerlerini Okuma
Bir KProperty1, değerini get(instance) aracılığıyla okumak için bir örnekle çağrılabilir.
import kotlin.reflect.full.memberProperties
class Point(val x: Int, val y: Int)
fun main() {
val p = Point(3, 4)
for (prop in Point::class.memberProperties) {
println(prop.name + " = " + prop.get(p))
}
}İşlevleri İnceleme
memberFunctions, bir sınıfın çağrılabilir işlevlerini KFunction nesneleri olarak döndürür. Her işlevin name değerini okuyabilirsiniz.
import kotlin.reflect.full.memberFunctions
class Calculator {
fun add(a: Int, b: Int) = a + b
fun negate(a: Int) = -a
}
fun main() {
Calculator::class.memberFunctions
.filter { it.name in listOf("add", "negate") }
.forEach { println(it.name) }
}İşlev Başvuruları
::name söz dizimi, KFunction türünde çağrılabilir bir başvuru üretir. Bu başvuruyu daha sonra invoke ile çağırabilir veya başka yerlere aktarabilirsiniz.
fun double(n: Int) = n * 2
fun main() {
val ref = ::double
println(ref.name)
println(ref.invoke(21))
}Örnekler Oluşturma
createInstance(), sınıfın bağımsız değişken almayan bir kurucusu olduğunda yansıtma yoluyla bir nesne oluşturur.
import kotlin.reflect.full.createInstance
class Widget {
override fun toString() = "Widget"
}
fun main() {
val w = Widget::class.createInstance()
println(w)
}Kurucuları İnceleme
constructors, sınıfın kurucularını listeler. Hangi bağımsız değişkenleri beklediklerini öğrenmek için parameters değerlerini inceleyebilirsiniz.
class Person(val name: String, val age: Int)
fun main() {
val ctor = Person::class.constructors.first()
ctor.parameters.forEach { println(it.name) }
}Maliyetler ve Dikkat Edilecekler
Yansıtma güçlüdür, ancak:
- Doğrudan çağrılardan daha yavaştır
- Derleme zamanı güvenliğini aşar
- JVM'de
kotlin-reflectkitaplığını gerektirir
Yansıtmayı sık tekrarlanan döngülerde değil, çatılar ve araç kodları için kullanın.
Yansıtma Araç Kutusu
Hatırlanması gereken temel türler:
KClass— bir sınıfKProperty— bir özellikKFunction— bir işlevKParameter— bir parametre
Birlikte, yapıyı dinamik olarak okumanızı sağlarlar.
Kısa Sınama
Yansıtmanın temelleri konusundaki anlayışınızı sınayın.
Özet
Yansıtmanın temellerini öğrendiniz:
::classaracılığıylaKClasselde etmememberPropertiesvememberFunctionslisteleme- Özellik değerlerini okuma ve işlev başvurularını çağırma
createInstance()ile nesneler oluşturma
Sırada: anotasyonları dinamik olarak okumak.
Sıkça Sorulan Sorular
“Yansımanın Temelleri” dersi ücretsiz mi?
Evet — “Yansımanın Temelleri” 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.
“Yansımanın Temelleri” dersinde ne öğreneceğim?
Çalışma zamanında türleri 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 3. dersidir.
“Yansımanın Temelleri” 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
- Ek Açıklamaları Kullanma
- Ek Açıklamaları Tanımlama
- Yansımanın Temelleri
- Uygulamalı Yansıma