创建
这里没有直接使用object方式,因为使用此方式的变量都是静态的
/**
* kotlin 单例模式
*/
class SingletonTest private constructor(){
/*
* 注意: 在 companion object 里面的都是静态变量
*/
// 创建线程安全的单例,lazy是惰性加载
companion object {
val instance by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { SingletonTest() }
}
}
调用
java调用
SingletonTest singletonTest = SingletonTest.Companion.getInstance();
kotlin调
var singletonTest:SingletonTest = SingletonTest.instance