Java创建单例核心代码:
public static CommonHttp getInstance() {
if (commonHttp == null) {
synchronized (CommonHttp.class) {
if (commonHttp == null)
commonHttp = new CommonHttp();
}
}
return commonHttp;
}
这是一段很金典的Java创建单例代码
使用kotlin创建
companion object {
private var commonHttp: CommonHttp? = null
val instance: CommonHttp
get() {
if (commonHttp == null) {
synchronized(CommonHttp::class.java) {
if (commonHttp == null)
commonHttp = CommonHttp()
}
}
return commonHttp!!
}
}
这里仍然是使用class.java作为同步锁
这里原理其实是使用kotlin伴生对象来处理,详细可以去了解*companion关键字标记