所以我试图了解 Kotlin 如何处理属性同步。如果我有这门课:
class Foo {
var a = 0
var b = 0
}
我想确保 a & b 的所有访问都同步。我该怎么做?我试过使用注释:
class Foo {
@Synchronized
var a = 0
@Synchronized
var b = 0
}
但是 Kotlin 给了我一个编译器错误:
This annotation is not applicable to target 'member property with backing field'
我只是想更好地处理 Kotlin 中的线程安全问题。这是我在 Java 中一直有强制症的问题,我正在尝试弄清楚如何在 Kotlin 中正确处理它。
最佳答案
您不能在属性上进行同步,但可以在访问器方法上进行同步。使用以下语法:
class Foo {
var a = 0
@Synchronized get
@Synchronized set
//or
@get:Synchronized @set:Synchronized
var b = 0
}
关于java - 同步属性 getter / setter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45445991/