farmerbb
12/05/2019, 8:19 PMRuckus
12/05/2019, 8:20 PMfarmerbb
12/05/2019, 8:21 PMRuckus
12/05/2019, 8:23 PMclass Test {
var a = "a"
set(value) {
field = checkValue(field, value)
}
var b = "b"
set(value) {
field = checkValue(field, value)
}
private fun checkValue(current: String, new: String): String {
return if (new > current) new else current
}
}
farmerbb
12/05/2019, 8:27 PMset(value) = checkValue(field, value)
but this seems clean enough. ThanksRuckus
12/05/2019, 8:28 PMUnit
, so that won't work.streetsofboston
12/05/2019, 8:30 PMclass GreatestDelegate<T: Comparable<T>>(initialValue: T) {
private var backingField: T = initialValue
operator fun getValue(host: Any?, property: KProperty<*>): T {
return backingField
}
operator fun setValue(host: Any?, property: KProperty<*>, value: T) {
if (value > backingField) {
backingField = value
}
}
}
class Test {
var a: String by GreatestDelegate("")
var b: String by GreatestDelegate("_")
}
Ruckus
12/05/2019, 8:42 PMfarmerbb
12/05/2019, 8:42 PM