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

相关推荐
asdfg12589633 分钟前
Java中的Comparator 和JS中的回调函数好相似
java·开发语言
lly2024064 分钟前
Python SMTP邮件发送教程
开发语言
Sahadev_7 分钟前
GitMemo 安卓版发布了:现在可以随时随地查看和记录自己的笔记
android·笔记·创业创新
我是伪码农10 分钟前
小程序100-125
开发语言·小程序·php
疏狂难除12 分钟前
JetBrains IDE插件开发教程(二)——学习初始代码
ide·kotlin
weixin_4467291619 分钟前
注解和反射
java·开发语言
এ慕ོ冬℘゜24 分钟前
JS 前端基础高频面试题
开发语言·前端·javascript
凯瑟琳.奥古斯特26 分钟前
常见加密算法及应用
java·开发语言·网络·网络协议·职场和发展
Dxy123931021630 分钟前
JS列表获取指定范围值的 N 种方法
开发语言·javascript·ecmascript
froginwe1132 分钟前
Memcached CAS 命令详解
开发语言