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

相关推荐
林开落L9 分钟前
从零开始学习Protobuf(C++实战版)
开发语言·c++·学习·protobuffer·结构化数据序列化机制
牛奔13 分钟前
Go 是如何做抢占式调度的?
开发语言·后端·golang
符哥200821 分钟前
C++ 进阶知识点整理
java·开发语言·jvm
小猪咪piggy22 分钟前
【Python】(4) 列表和元组
开发语言·python
難釋懷34 分钟前
Lua脚本解决多条命令原子性问题
开发语言·lua
爱装代码的小瓶子42 分钟前
【C++与Linux基础】进程间通讯方式:匿名管道
android·c++·后端
CoderCodingNo42 分钟前
【GESP】C++ 二级真题解析,[2025年12月]第一题环保能量球
开发语言·c++·算法
独好紫罗兰1 小时前
对python的再认识-基于数据结构进行-a005-元组-CRUD
开发语言·数据结构·python
兴趣使然HX1 小时前
Android绘帧流程解析
android
chilavert3181 小时前
技术演进中的开发沉思-356:重排序(中)
java·开发语言