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

相关推荐
小二李几秒前
什么是依赖注入(DI)&控制反转IoC
java·开发语言
huhy~2 分钟前
基于Ubuntu 24.04 LTS 搭建OpenStack F 版
android·ubuntu·openstack
是宇写的啊10 分钟前
SpringIoc和Di
java·开发语言
沐雪轻挽萤12 分钟前
3. C++17新特性-带初始化的 if 和 switch 语句
开发语言·c++
xianluohuanxiang16 分钟前
2026年深度:高精度气象+新能源,从风速误差到收益偏差,行业赋能正在重构电站盈利模型
大数据·开发语言·人工智能·机器学习
2401_8858850418 分钟前
视频短信接口接入麻不麻烦?API调用说明
android·音视频
froginwe1124 分钟前
SQL PRIMARY KEY(主键)
开发语言
2401_8858850427 分钟前
视频短信接口集成起来复杂吗?API接入说明
开发语言·php·音视频
Thexhy29 分钟前
Java 后端完整成长路线(含项目)
java·开发语言
zopple34 分钟前
PHP与Vue.js:前后端开发的完美搭档
开发语言·vue.js·php