美文网首页
lateinit by lazy

lateinit by lazy

作者: 小虫虫奇遇记 | 来源:发表于2020-07-26 14:54 被阅读0次

Kotlin中延迟初始化的方法:
lateinit , by lazy

lateinit用在var变量,作用:编译器检查时不因为变量未初始化而报错。

private lateinit var mRootView: View

然后在inflateView之后再对变量进行赋值,使用的时候默认非空

by lazy 属性委托, 用在val常量(相当于java 中final变量):

private val a: Int by lazy { 5 }

虽然两者都可以推迟属性初始化的时间,但是lateinit var只是让编译期忽略对属性未初始化的检查,后续在哪里以及何时初始化还需要开发者自己决定。

而by lazy真正做到了声明的同时也指定了延迟初始化时的行为,在属性被第一次被使用的时候才自动初始化,且保证了线程安全。

相关文章

网友评论

      本文标题:lateinit by lazy

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