by lazy 的作用
by 是在kotlin中代表者委托, lazy 懒加载
by lazy 就是委托延时处理
下面写一个demo说明下
新建一个类
class ExportController {
fun getName(): String? {
return "name";
}
fun getAge(): Int {
return 18;
}
}
在mian中如下
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main_layout)
val exportController by lazy { ExportController() }
exportController.getName();
exportController.getAge();
}
}
在这种demo中 通过 by lazy 懒加载的ExportController,当exportController
第一次被访问时,会调用ExportController。
总结:
只有在首次访问exportController
属性时,才会调用ExportController
来创建这个实例。之后的访问都将直接返回已经创建好的ExportController
实例,避免了不必要的重复初始化。