Sobes.tech
Junior — Middle

Quais argumentos e parâmetros o método getValue de um objeto delegado aceita?

sobes.tech IA

Resposta da IA

O método getValue de um objeto delegado em Kotlin aceita três parâmetros:

  1. thisRef — o objeto ao qual o delegado é aplicado (normalmente uma instância da classe onde a propriedade é declarada). O tipo do parâmetro corresponde ao tipo do proprietário da propriedade.
  2. property — um objeto do tipo KProperty<*>, que contém informações sobre a própria propriedade (por exemplo, o nome da propriedade).

A assinatura do método é:

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

onde T é o tipo do valor retornado pela propriedade.

Exemplo:

class Delegate {
    operator fun getValue(thisRef: Any?, property: KProperty<*>): String {
        return "Valor para a propriedade '${property.name}'"
    }
}

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

fun main() {
    val e = Example()
    println(e.prop) // Vai imprimir: Valor para a propriedade 'prop'
}