Я пытаюсь найти решение для хорошего решения класса данных kotlin.У меня уже есть это:
data class Object(
var classMember: Boolean,
var otherClassMember: Boolean,
var example: Int = 0) {
fun set(block: Object.() -> kotlin.Unit): Object {
val copiedObject = this.copy()
copiedObject.apply {
block()
}
return copiedObject
}
fun touch(block: Object.() -> kotlin.Unit): Object {
return this.set {
classMember = true
otherClassMember = false
block() }
}
}
val test = Object(true,true,1)
val changedTest = test.touch { example = 2 }
результатом этого метода является то, что объект changedTest
имеет classMember = true
, otherClassMember = false
и example = 2
Проблема с этим решениемсвойства класса не являются неизменными при объявлении var
.У кого-нибудь есть идеи, как оптимизировать мои методы, чтобы изменить var
на val
?