我想在伴侣对象中设置一个可变变量,并以静态方式在其他方法中使用它。
class GlobalVariable {
companion object {
private var flag = false
fun modifyFlag(){
flag = setFlagValue() //this method written in other class to assign value to the flag
}
fun getVal(): Boolean = this.flag // this is to get flag value in other methods static way, like GlobalVariable.getVal()
}
}
flag
是我需要的变量,我将在其他方法中调用modifyFlag()
方法,将值设置为标志,然后在需要时使用GlobalVariable.getVal()
。
不确定是否以这种方式是线程安全的。还有其他方法可以在Kotlin中设置全局变量吗?
[我认为,如果您在JVM上运行Kotlin应用,则应尝试此操作。注释@Synchronized
将锁定方法,因此线程在另一个线程执行该注释时将无法访问它。
class GlobalVariable {
companion object {
private var mutex = Object()
private var flag = false
@Synchronized fun modifyFlag(){
flag = setFlagValue()
}
@Synchronized fun getVal(): Boolean = this.flag
}
}