Junior — Middle
Milyen argumentumokat és paramétereket fogad el a getValue metódus egy delegált objektumnál?
sobes.tech MI
Válasz az MI-től
A Kotlinban egy delegált objektum getValue metódusa három paramétert fogad:
- thisRef — az az objektum, amelyhez a delegált tartozik (általában az az példány, amelyben a tulajdonság deklarálva van). A paraméter típusa megegyezik a tulajdonság tulajdonosának típusával.
- property — egy
KProperty<*>típusú objektum, amely információkat tartalmaz a tulajdonságról (például a nevét).
A metódus szignatúrája a következő:
operator fun getValue(thisRef: Any?, property: KProperty<*>): T
ahol T a tulajdonság által visszaadott érték típusa.
Példa:
class Delegate {
operator fun getValue(thisRef: Any?, property: KProperty<*>): String {
return "Érték a '${property.name}' tulajdonsághoz"
}
}
class Example {
val prop: String by Delegate()
}
fun main() {
val e = Example()
println(e.prop) // Kiírja: Érték a 'prop' tulajdonsághoz
}