Sobes.tech
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:

  1. 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.
  2. 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
}