Syntax 需要帮助理解android.volley.requestQueue文档示例的语法吗

Syntax 需要帮助理解android.volley.requestQueue文档示例的语法吗,syntax,kotlin,synchronization,singleton,android-volley,Syntax,Kotlin,Synchronization,Singleton,Android Volley,我不明白在本例中,实例变量是如何从 我理解代码的作用;我只是不懂语法。看起来里面应该有一些等号。实际上 看起来应该有一些等号,而不是冒号 你完全正确!这个例子是错误的!它转换为以下Java代码: private static volatile MySingleton INSTANCE; public static MySingleton getInstance(Context context) { if(INSTANCE != null) { return INSTA

我不明白在本例中,实例变量是如何从

我理解代码的作用;我只是不懂语法。看起来里面应该有一些等号。

实际上

看起来应该有一些等号,而不是冒号

你完全正确!这个例子是错误的!它转换为以下Java代码:

private static volatile MySingleton INSTANCE;

public static MySingleton getInstance(Context context) {
    if(INSTANCE != null) { 
        return INSTANCE;
    } else {
        synchronized(this) {
            if(INSTANCE != null) {
                return INSTANCE;
            }
            return new MySingleton(context);
        }
    }
}
如您所见,实例变量从未实际设置过-_-

应该是:

class MySingleton(context: Context) {
    companion object {
        @Volatile @JvmField private var INSTANCE: MySingleton? = null
        fun getInstance(context: Context) =
            INSTANCE ?: synchronized(this) {
                INSTANCE ?: MySingleton(context).also { INSTANCE = it }
            }
    }
}

非常感谢你澄清这一点!我开始怀疑我的理智。
class MySingleton(context: Context) {
    companion object {
        @Volatile @JvmField private var INSTANCE: MySingleton? = null
        fun getInstance(context: Context) =
            INSTANCE ?: synchronized(this) {
                INSTANCE ?: MySingleton(context).also { INSTANCE = it }
            }
    }
}