Ich teste out Kotlin auf Android und lief auf ein Problem, wo die Setter von zwei Variablen in einer unendlichen Rekursion aufgerufen werden, weil sie versuchen, einander zu ändern, wenn sie ursprünglich festgelegt sind.Kotlin Setter Infinte Rekursion
Hier ist ein Beispielcode
class Example {
var a: Int = 0
set(value) {
b = a+10
}
var b:Int = 0
set(value) {
a = b-10
}
}
Und ich sage dann den folgenden Code verwenden:
val example = Example()
example.a = 10
Es endet eine infinte Rekursion verursachen und schließlich eine Stackoverflow. Der Setzer für b
ruft den Setzer für a
auf, der seinerseits den Setzer für b
erneut aufruft. Und es geht für immer weiter.
Ich mag für b
den Wert aktualisieren können, wann immer a
eingestellt ist, sondern auch den Wert von a
zu aktualisieren, wenn b
gesetzt.
Irgendwelche Gedanken von den Kotlin-Experten da draußen? Müsste ich in diesem Fall Java-ähnliche Setter machen, so dass mein Setter-Code nicht aufgerufen wird, wenn ich a
oder b
einen Wert zuweise. Oder gibt es eine nette Kotlin-Güte, die ich benutzen kann?