kotlin by lazy 的使用

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实例,避免了不必要的重复初始化。

相关推荐
Lvan的前端笔记7 小时前
python:列表推导式(List Comprehension)
开发语言·python·list
李小先7 小时前
supersonic——PARSING阶段
开发语言·python
Digitally7 小时前
4种方法在电脑上查看安卓短信
android·电脑
_李小白7 小时前
【Android FrameWork】第四十天:SamplingProfilerService
android
走在路上的菜鸟7 小时前
Android学Dart学习笔记第二十四节 类-可调用对象Class()()
android·笔记·学习·flutter
夕阳下的一片树叶9137 小时前
后端java遇到的问题
java·开发语言
海涛高软7 小时前
Qt中使用QListWidget列表
开发语言·qt
2501_915921438 小时前
Flutter App 到底该怎么测试?如何在 iOS 上进行测试
android·flutter·ios·小程序·uni-app·cocoa·iphone
沐知全栈开发8 小时前
MongoDB 删除数据库
开发语言
常利兵8 小时前
Kotlin Flow 从入门到实战:异步数据流处理的终极解决方案
android·kotlin