Sobes.tech
Junior — Middle

Quali argomenti e parametri accetta il metodo getValue di un oggetto delegato?

sobes.tech AI

Risposta dell'AI

Il metodo getValue di un oggetto delegato in Kotlin accetta tre parametri:

  1. thisRef — l'oggetto a cui si applica il delegato (solitamente un'istanza della classe in cui è dichiarata la proprietà). Il tipo del parametro corrisponde al tipo del proprietario della proprietà.
  2. property — un oggetto di tipo KProperty<*>, che contiene informazioni sulla proprietà stessa (ad esempio, il nome della proprietà).

La firma del metodo è:

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

dove T è il tipo del valore restituito dalla proprietà.

Esempio:

class Delegate {
    operator fun getValue(thisRef: Any?, property: KProperty<*>): String {
        return "Valore per la proprietà '${property.name}'"
    }
}

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

fun main() {
    val e = Example()
    println(e.prop) // Stampa: Valore per la proprietà 'prop'
}