Kotlin中,lateinit 和 lazy{} 的区别

Posted gloryhope

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin中,lateinit 和 lazy{} 的区别相关的知识,希望对你有一定的参考价值。

1.lazy{} 只能用在val类型, lateinit 只能用在var类型 如 :
val name: String by lazy { "sherlbon" }
lateinit var adapter: MyAdapter
1
2
2.lateinit不能用在可空的属性上和java的基本类型上 如:
lateinit var age: Int  //会报错
1
3.lateinit可以在任何位置初始化并且可以初始化多次。而lazy在第一次被调用时就被初始化,想要被改变只能重新定义
4.lateinit 有支持(反向)域(Backing Fields)
---------------------
作者:Sherlbon
来源:CSDN
原文:https://blog.csdn.net/Sherlbon/article/details/72769843
版权声明:本文为博主原创文章,转载请附上博文链接!











以上是关于Kotlin中,lateinit 和 lazy{} 的区别的主要内容,如果未能解决你的问题,请参考以下文章

能说一说 Kotlin 中 lateinit 和 lazy 的区别吗?

面试官:能说一说 Kotlin 中 lateinit 和 lazy 的区别吗

面试官:能说一说 Kotlin 中 lateinit 和 lazy 的区别吗?

Kotlin基础 关键字:lateinit和by lazy

Kotlin 中的 by lazy与lateinit

Kotlin类的初始化 ④ ( lateinit 延迟初始化 | ::属性名称.isInitialized 检查属性是否初始化 | lazy 惰性初始化 )