kotlin-延迟初始化
Posted 我还能码嘛。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kotlin-延迟初始化相关的知识,希望对你有一定的参考价值。
Koltin中属性在声明的同时也要求要被初始化,否则会报错:
延迟初始化使用的是lateinit
关键字,它可以告诉编译器,我会在晚些时候对这个变量进行初始化,这样就不用在一开始的时候给它赋值为null
了。
补充:
lateinit var
只能用来修饰类属性,不能用来修饰局部变量,并且只能用来修饰对象,不能用来修饰基本类型 (因为基本类型的属性在类加载后的准备阶段都会被初始化为默认值)。lateinit var
的作用也比较简单,就是让编译期在检查时不要因为属性变量未被初始化而报错。- Kotlin相信当开发者显式使用
lateinit var
关键字的时候,他一定也会在后面某个合理的时机将该属性对象初始化的
判断它是否已经完成初始化
if(!::s.isInitialized)
以上是关于kotlin-延迟初始化的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin 中初始化块初始化的顺序lateinit延迟初始化详解
错误记录Kotlin 延迟加载初始化报错 ( lateinit property string has not been initialized )