Junior — Middle
Hoe wordt er gewerkt met reflectie in Kotlin?
sobes.tech AI
Antwoord van AI
In Kotlin wordt werken met reflectie uitgevoerd via het pakket kotlin.reflect. De hoofdklasse is KClass, die een klasse tijdens runtime vertegenwoordigt. Via reflectie kan men informatie verkrijgen over eigenschappen, functies, constructors en annotaties van klassen.
Voorbeeld van het verkrijgen van de naam van de klasse en de lijst van zijn eigenschappen:
import kotlin.reflect.full.memberProperties
class User(val name: String, val age: Int)
fun main() {
val kClass = User::class
println("Klassennaam: ${kClass.simpleName}")
for (prop in kClass.memberProperties) {
println("Eigenschap: ${prop.name}")
}
}
Het is ook mogelijk om functies aan te roepen en instanties te maken via reflectie, maar daarvoor is soms het gebruik van de Java Reflection API (java.lang.reflect) nodig.
Reflectie is nuttig voor dynamische analyse en werken met objecten, bijvoorbeeld bij serialisatie, DI of het schrijven van frameworks.