私はAndroid上でkotlinをテストしており、最初に設定されたときに互いに変更しようとするため、infinte再帰で2つの変数のセッターが呼び出されるという問題が発生しました。それはinfinte再帰し、最終的にStackOverflowを引き起こしてしまいkotlin setter infinte recursion
val example = Example()
example.a = 10
:ここ
は、サンプルコード
class Example {
var a: Int = 0
set(value) {
b = a+10
}
var b:Int = 0
set(value) {
a = b-10
}
}
そして、私は、次のコードを使用すると言っています。 b
のセッターはa
のセッターを呼び出すと、再びb
のセッターが呼び出されます。それは永遠に続く。
私はa
が設定されるたびb
の値を更新するだけでなく、b
が設定されるたびa
の値を更新できるようにしたいです。
コトリンの専門家の意見はありますか?このケースでJavaをセッターのようにして、a
またはb
に値を割り当てるたびにセッターコードが呼び出されないようにする必要がありますか?それとも、私が使うことができる素晴らしいコトリンの良さはありますか?