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

相关推荐
zhangjw3419 小时前
Java基础语法:变量、数据类型与运算符,从原理到实战
java·开发语言
alexhilton1 天前
Compose中初始加载逻辑究竟应该放在哪里?
android·kotlin·android jetpack
yaoxin5211231 天前
384. Java IO API - Java 文件复制工具:Copy 示例完整解析
java·开发语言·python
zh_xuan1 天前
启动RN服务端口被占用
android·react native
NotFound4861 天前
实战指南如何实现Java Web 拦截机制:Filter 与 Interceptor 深度分享
java·开发语言·前端
Ava的硅谷新视界1 天前
用了一天 Claude Opus 4.7,聊几点真实感受
开发语言·后端·编程
rabbit_pro1 天前
Python调用onnx模型
开发语言·python
浪客川1 天前
【百例RUST - 010】字符串
开发语言·后端·rust
Code-keys1 天前
Android Codec2 Filter 算法模块开发指南
android·算法·音视频·视频编解码
赵侃侃爱分享1 天前
学完Python第一次写程序写了这个简单的计算器
开发语言·python