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

相关推荐
月夜风雨磊27 分钟前
Android NDK从r10c版本到r29版本的下载链接
android·gitee·android ndk
三体世界33 分钟前
Mysql基本使用语句(一)
linux·开发语言·数据库·c++·sql·mysql·主键
etcix40 分钟前
wrap cpp variant as dll for c to use
java·c语言·开发语言
louisgeek1 小时前
Android MIUI 开启 Google Play 服务
android
Websites1 小时前
Hyperf 百度翻译接口实现方案
开发语言·自然语言处理·php·自动翻译
独行soc1 小时前
2025年大模型安全岗的面试汇总(题目+回答)
android·人工智能·安全·面试·职场和发展·渗透测试
papership3 小时前
【入门级-C++程序设计:11、指针与引用-引 用】
c语言·开发语言·c++·青少年编程
前行的小黑炭3 小时前
Android App:每次想写新项目锻炼一下,但苦于没有UI,那么这篇文章适合你~(适合基础小白锻炼)
android·kotlin
常乐か4 小时前
VS2022+QT5.15.2+OCCT7.9.1的开发环境搭建流程
开发语言·qt·opencascade
Evand J4 小时前
【MATLAB例程】滑动窗口均值滤波、中值滤波、最小值/最大值滤波对比。附代码下载链接
开发语言·matlab·均值算法