kotlin里面的单例是通过关键字object来实现的:
object Singleton {
fun nowDateTime():String{
var sdf = SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS")
return sdf.format(Date())
}
val nowDate:String
get() {
var sdf = SimpleDateFormat("yyyy-MM-dd")
return sdf.format(Date())
}
fun getFormatTime(format:String):String{
if (format.isNullOrBlank()) return ""
var sdf = SimpleDateFormat(format)
return sdf.format(Date())
}
}
然后我们就直接可以在其他地方通过“类名.方法名”或者“类名.变量名”来访问:
fun main(args: Array<String>) {
println("${Singleton.nowDateTime()}") //访问方法
println("${Singleton.getFormatTime("yyyy-MM-dd HH:mm:ss SSS")}") //访问方法
println("${Singleton.nowDate}") //访问变量
}
因此,关键字“object”定义单例,类加载时实例化对象,而“Singleton”既是类名也是对象名,而且是一个“饿汉式”的单例实现。