美文网首页
Kotlin与Android碰撞之美,其一,优雅的Applica

Kotlin与Android碰撞之美,其一,优雅的Applica

作者: 潇逍小宇 | 来源:发表于2018-01-16 00:08 被阅读0次

    原创文章,转载中注明转载地址:https://www.jianshu.com/p/1fdae52a7d8e

    Java单例模式

    回顾一下我们在Java中定义一个 “单例” Application

    public class AppJava extends Application {
    
        private static AppJava inst;
    
        @Override
        public void onCreate() {
            super.onCreate();
            inst = this;
        }
    
        public static AppJava getInst() {
            return inst;
        }
    }
    

    那我们在Kotlin下呢?很简单,我们开始

    Kotlin单例模式

    class App : Application() {
    
        companion object {
            lateinit var inst: App
                private set
        }
    
        override fun onCreate() {
            super.onCreate()
            inst = this
        }
    }
    

    是不是很简单,在Kotlin中交互调用 App.inst 方便极了。那个我们在 Java 中混用试试。用不了!报错了?


    正确的使用方法(增加一个注解 @JvmStatic ,标注我们在Java中是 static 变量):

    class App : Application() {
    
        companion object {
            @JvmStatic lateinit var inst: App
                private set
        }
    
        override fun onCreate() {
            super.onCreate()
            inst = this
        }
    }
    

    建议

    在Android开发中应该尽量避免 static 静态变量的使用,滥用容易导致类生命周期变长,很难管理被回收。也更容易导致内存泄露

    相关文章

      网友评论

          本文标题:Kotlin与Android碰撞之美,其一,优雅的Applica

          本文链接:https://www.haomeiwen.com/subject/pejjoxtx.html