Sobes.tech
Junior — Middle

Jakie argumenty i parametry przyjmuje metoda getValue w obiekcie delegata?

sobes.tech AI

Odpowiedź od AI

Metoda getValue w obiekcie delegowanym w Kotlinie przyjmuje trzy parametry:

  1. thisRef — obiekt, do którego stosowany jest delegat (zwykle jest to instancja klasy, w której zadeklarowana jest właściwość). Typ parametru odpowiada typowi właściciela właściwości.
  2. property — obiekt typu KProperty<*>, zawierający informacje o samej właściwości (np. nazwa właściwości).

Sygnatura metody wygląda tak:

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

gdzie T jest typem zwracanego przez właściwość wartości.

Przykład:

class Delegate {
    operator fun getValue(thisRef: Any?, property: KProperty<*>): String {
        return "Wartość dla właściwości '${property.name}'"
    }
}

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

fun main() {
    val e = Example()
    println(e.prop) // Wypisze: Wartość dla właściwości 'prop'
}