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

相关推荐
lly2024061 分钟前
jQuery AJAX 简介
开发语言
盼哥PyAI实验室2 分钟前
Python多线程实战:12306抢票系统的并发处理优化
java·开发语言·python
好评1244 分钟前
【C++】继承与多态:从语法到底层原理
开发语言·面向对象·类与对象
鹏多多4 分钟前
flutter-使用EventBus实现组件间数据通信
android·前端·flutter
历程里程碑5 分钟前
C++ 8:list容器详解与实战指南
c语言·开发语言·数据库·c++·windows·笔记·list
UpgradeLink6 分钟前
Electron项目使用electron-updater与UpgradeLink接入参考
开发语言·前端·javascript·笔记·electron·用户运营
小尧嵌入式11 分钟前
C++11线程库的使用(上)
c语言·开发语言·c++·qt·算法
m0_6161884916 分钟前
JS文件批量下载并打包成ZIP的功能
开发语言·javascript·ecmascript
蓝色汪洋19 分钟前
luogu填坑
开发语言·c++·算法
咖啡の猫19 分钟前
Python列表推导式
开发语言·python