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

相关推荐
-孤存-19 小时前
Spring Bean作用域与生命周期全解析
java·开发语言·前端
Remember_99319 小时前
SpringCloud:Nacos注册中心
java·开发语言·后端·算法·spring·spring cloud·list
几何心凉19 小时前
AI时代结合Haystack实现自定义数据抓取工具
开发语言
csbysj202019 小时前
JSP 文件上传详解
开发语言
郝学胜-神的一滴19 小时前
FastAPI:Python 高性能 Web 框架的优雅之选
开发语言·前端·数据结构·python·算法·fastapi
柒.梧.20 小时前
Java位运算详解:原理、用法及实战场景(面试重点)
开发语言·数据库·python
游乐码20 小时前
c#万物之父装箱拆箱
开发语言·c#
CDwenhuohuo20 小时前
var面试题
开发语言·javascript·ecmascript
PD我是你的真爱粉20 小时前
深入理解 Event Loop:JavaScript 的“心脏起搏器”
开发语言·javascript·ecmascript
bqliang20 小时前
Compose 实验性 Styles API
android·android jetpack