审查生成的账户字段委托

来自 委托属性
Kotlin 2.4.10 高级 6分钟 找出 3处问题

在这个生成的属性委托用于账户输入前审查它。

修剪输入,同时让每个字段和 AccountForm 实例彼此独立;拒绝空白值,并且绝不记录 API 令牌。

kotlin
import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty

object TrimmedText : ReadWriteProperty<Any?, String> {
    private var value = ""

    override fun getValue(thisRef: Any?, property: KProperty<*>): String = value

    override fun setValue(
        thisRef: Any?,
        property: KProperty<*>,
        newValue: String,
    ) {
        println("${property.name}: '$value' -> '${newValue.trim()}'")
        value = newValue.trim()
    }
}

class AccountForm {
    var displayName: String by TrimmedText
    var apiToken: String by TrimmedText
}

生成代码仅作示例,不代表任何特定模型

在试验场中打开
报告错误