Цепочки вызовов в Kotlin
Если метод возвращает this, следующий метод можно
писать сразу после точки. Так настраивают объект
несколькими вызовами подряд:
class User {
var name: String = ""
var surn: String = ""
fun setName(name: String): User {
this.name = name
return this
}
fun setSurn(surn: String): User {
this.surn = surn
return this
}
fun show(): String = "$name $surn"
}
fun main() {
val user = User()
.setName("john")
.setSurn("smit")
println(user.show())
}
Каждый сеттер меняет поле и отдаёт тот же объект. Порядок вызовов в цепочке может быть любым:
class User {
var name: String = ""
var age: Int = 0
fun setName(name: String): User {
this.name = name
return this
}
fun setAge(age: Int): User {
this.age = age
return this
}
}
fun main() {
val user = User().setAge(25).setName("john")
println("${user.name} ${user.age}")
}
Сделайте класс Employee со свойствами name
и salary. Сделайте методы setName
и setSalary, которые возвращают Employee.
Создайте объект Employee цепочкой из двух сеттеров.
Выведите имя и зарплату.