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{} 的区别
原文:https://www.cnblogs.com/gloryhope/p/10275489.html