Kotlinはプロパティを委譲しました。これは非常に優れた機能です。しかし、私は値を取得して設定する方法を考え出しています。たとえば、委任されたプロパティの値を取得したいとします。 get()メソッドでは、どのように値にアクセスできますか?ここでkotlin delegateプロパティ、get()メソッドで値にアクセスする方法は?
は、私が実装しているかの例です:
class Example() {
var p: String by DelegateExample()
}
class DelegateExample {
operator fun getValue(thisRef: Any?, property: KProperty<*>): String {
return "${property.name} "
}
operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) {
println("${value.trim()} '${property.name.toUpperCase()} '")
}
}
fun delegate(): String {
val e = Example()
e.p = "NEW"
return e.p
}
私は理解することができません主な質問は、私が委譲クラスが割り当てられている上、実際のプロパティに値を設定することができますどのように、です。プロパティp
に「NEW」を割り当てると、その値を変数p
に保存するにはどうすればよいですか、またはgetを使用してp
に渡す新しい値を読み取ることができますか?私はここに何か基本的なものを欠いていますどんな助けでも大歓迎です。前もって感謝します。
入手し、DelegateExampleのインスタンスに委任されたp上の操作を設定し、そのタイプの本当のpはありません文字列。値を保持するには、DelegateExampleの変数を使用します。 –