Delegates.observable
は、プロパティが変更されるたびに指定されたラムダ(監視関数)が呼び出されます。
ラムダは3つの引数を取ります:
prop
: プロパティのメタデータ(プロパティ名など)。old
: プロパティの古い値。new
: プロパティの新しい値。
このように、Delegates.observable
を使うとプロパティの変更を監視して、変更のたびに処理を実行できます。
import kotlin.properties.Delegates | |
class User { | |
var name: String by Delegates.observable("<No Name>") { prop, old, new -> | |
println("Property '${prop.name}' changed from '$old' to '$new'") | |
} | |
} | |
fun main() { | |
val user = User() | |
user.name = "Alice" // コンソールに "Property 'name' changed from '<No Name>' to 'Alice'" と表示 | |
user.name = "Bob" // コンソールに "Property 'name' changed from 'Alice' to 'Bob'" と表示 | |
} |