Properties and Encapsulation
Custom Setter
Validate a value before storing it in a property.
Custom Setter
CustomSetter.kt
class Rating {
var value: Int = 0
set(input) {
field = if (input < 0) 0 else if (input > 5) 5 else input
}
}
fun main() {
val input =
val rating = Rating()
rating.value = input
val stored = rating.value
println("input=$input")
println("stored=$stored")
}
class Rating {
var value: Int = 0
set(input) {
field = if (input < 0) 0 else if (input > 5) 5 else input
}
}
fun main() {
val input =
val rating = Rating()
rating.value = input
val stored = rating.value
println("input=$input")
println("stored=$stored")
}
class Rating {
var value: Int = 0
set(input) {
field = if (input < 0) 0 else if (input > 5) 5 else input
}
}
fun main() {
val input =
val rating = Rating()
rating.value = input
val stored = rating.value
println("input=$input")
println("stored=$stored")
}
setter
A custom setter can control what gets stored.