美文网首页
lateinit:延迟初始化属性与变量

lateinit:延迟初始化属性与变量

作者: 唯一很无敌 | 来源:发表于2019-05-25 09:42 被阅读0次

    由于非空对象必须在构造初始化完成之前初始化,但是使用 lateinit 修饰该对象可以延迟初始化

    public class MyTest {
        lateinit var subject: TestSubject
    
        fun setup() {
            subject = TestSubject()
        }
    
        fun test() {
            subject.method()  // 直接解引用
        }
    }
    

    要检测一个 lateinit var 是否已经初始化过,请在该属性的引用上使用 .isInitialized:

    if (foo::bar.isInitialized) {
        println(foo.bar)
    }
    

    相关文章

      网友评论

          本文标题:lateinit:延迟初始化属性与变量

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