Sobes.tech
Junior — Middle

Какви аргументи и параметри приема методът getValue при делегиран обект?

sobes.tech AI

Отговор от AI

Методът getValue на делегиран обект в Kotlin приема три параметъра:

  1. thisRef — обектът, към който се прилага делегатът (обикновено инстанция на класа, в който е обявено свойството). Типът на параметъра съответства на типа на собственика на свойството.
  2. property — обект от тип KProperty<*>, който съдържа информация за самото свойство (например името на свойството).

Подписът на метода изглежда така:

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

където T е типът на стойността, която връща свойството.

Пример:

class Delegate {
    operator fun getValue(thisRef: Any?, property: KProperty<*>): String {
        return "Стойност за свойството '${property.name}'"
    }
}

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

fun main() {
    val e = Example()
    println(e.prop) // Ще изведе: Стойност за свойството 'prop'
}