Sobes.tech
Junior — Middle

Kokius argumentus ir parametrus priima getValue metodas deleguoto objekto?

sobes.tech AI

Atsakymas iš AI

Kotlin'e deleguoto objekto getValue metodas priima tris parametrus:

  1. thisRef — objektas, kuriam taikomas delegatas (dažniausiai tai yra klasės, kurioje deklaruota savybė, egzempliorius). Parametro tipas atitinka savybės savininko tipą.
  2. propertyKProperty<*> tipo objektas, kuris turi informaciją apie pačią savybę (pavyzdžiui, savybės pavadinimą).

Metodas pasirašytas taip:

operator fun getValue(thisRef: Any?, property: KProperty<*>): T

kur T yra savybės grąžinamosios reikšmės tipas.

Pavyzdys:

class Delegate {
    operator fun getValue(thisRef: Any?, property: KProperty<*>): String {
        return "Reikšmė savybei '${property.name}'"
    }
}

class Example {
    val prop: String by Delegate()
}

fun main() {
    val e = Example()
    println(e.prop) // Išves: Reikšmė savybei 'prop'
}