我在多线程方面没有太多经验.所以我不确定我是否正确使用了从Kotlin反编译的以下Java代码.
Here is the Kotlin code:
companion object {
@Volatile private var INSTANCE: SomeDatabase? = null
fun getInstance(context: Context): SomeDatabase =
INSTANCE ?: synchronized(this) {
INSTANCE ?: buildDatabase(context).also { INSTANCE = it }
}
}
以下是Java中的反编译代码:
SomeDatabase var10000 = ((SomeDatabase.Companion)this).getINSTANCE();
if (var10000 == null) {
synchronized(this){}
SomeDatabase var4;
try {
var10000 = SomeDatabase.Companion.getINSTANCE();
if (var10000 == null) {
...
var10000 = var4;
}
return var10000;
这难道不是说,因为百里空挡路,代码实际上是不同步的吗?