kotlin用object实现单例模式,companion object与java静态

Posted zhangphil

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kotlin用object实现单例模式,companion object与java静态相关的知识,希望对你有一定的参考价值。

kotlin用object实现单例模式,companion object与java静态

kotlin中很容易使用object实现java中的单例模式。由于kotlin中没有static修饰词,可以用companion object实现Java中的static效果。

//object相当于java的单例
object Singleton 
    var count: Int = 0
    fun out(msg: String? = "zhang") 
        println("$msg -- $count")
        count++
    


class MyClass 
    //相当于java的static final
    companion object 
        fun mymethod() 
            println("方法 - $object .javaClass.enclosingMethod.name")
        
    



fun main(args: Array<String>) 
    Singleton.out()
    Singleton.out()
    Singleton.out()

    MyClass.mymethod()

输出:

zhang -- 0
zhang -- 1
zhang -- 2
方法 - mymethod

可以看到object定义的Singleton只初始化一次。

以上是关于kotlin用object实现单例模式,companion object与java静态的主要内容,如果未能解决你的问题,请参考以下文章

只用一行代码的单例模式

kotlin-object关键字与单例模式

区别Kotlin中的object和companion object关键字

Kotlin 初学者单例类(object)

kotlin 之单例类详解

Kotlin下的5种单例模式