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

相关推荐
2401_857683546 分钟前
C++代码静态检测
开发语言·c++·算法
2401_8384725111 分钟前
内存泄漏自动检测系统
开发语言·c++·算法
2603_9494621013 分钟前
Flutter for OpenHarmony社团管理App实战:消息中心实现
android·javascript·flutter
开发者小天16 分钟前
python中的class类
开发语言·python
2501_9333295528 分钟前
Infoseek数字公关AI中台技术解析:如何构建企业级舆情监测与智能处置系统
开发语言·人工智能
m0_7066532328 分钟前
基于C++的爬虫框架
开发语言·c++·算法
梵刹古音29 分钟前
【C语言】 数据类型的分类
c语言·开发语言
andr_gale34 分钟前
08_flutter中如何优雅的提前获取child的宽高
android·flutter
diediedei36 分钟前
嵌入式数据库C++集成
开发语言·c++·算法
xie0510_38 分钟前
string模拟实现
开发语言·c++·算法