Sobes.tech
Middle

Welche Standarddelegierten kennst du?

sobes.tech KI

Antwort von AI

  • by lazy — wird für die verzögerte Initialisierung einer Eigenschaft verwendet. Der Wert wird beim ersten Zugriff auf die Eigenschaft berechnet und zwischengespeichert.
    val lazyValue: String by lazy {
        println("initialized") // Wird nur beim ersten Zugriff ausgeführt
        "Hello"
    }
    
  • Delegates.observable — Delegat, der bei jeder Änderung des Eigenschaftswerts eine Aktion ausführt.
    import kotlin.properties.Delegates
    
    var name: String by Delegates.observable("initialer Wert") {
        prop, old, new ->
        println("Wert für ${prop.name} hat sich von $old zu $new geändert")
    }
    
  • Delegates.vetoable — Delegat, der es ermöglicht, eine Änderung des Eigenschaftswerts abzufangen und basierend auf einer Bedingung zu verhindern.
    import kotlin.properties.Delegates
    
    var age: Int by Delegates.vetoable(10) {
        prop, old, new ->
        new >= 0 // Nur nicht-negative Werte erlaubt
    }