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

相关推荐
崇山峻岭之间9 小时前
matlab的高频注入
开发语言·matlab
溪海莘10 小时前
如何使用uv创建并管理一个新的空白的python项目?
开发语言·python·uv
吾诺10 小时前
GO 快速升级Go版本
开发语言·redis·golang
YMWM_10 小时前
conda特定环境打包
开发语言·conda·php
阴暗扭曲实习生10 小时前
135编辑器开放平台架构解析:企业级富文本接入方案的技术实现
java·开发语言·中间件
XiaoHu020710 小时前
C/C++数据结构与算法(第二弹)
java·开发语言·数据结构
2501_9159214310 小时前
从构建到 IPA 保护,Flutter iOS 包如何做混淆与安全处理
android·安全·flutter·ios·小程序·uni-app·iphone
Chan1610 小时前
双非 Java 后端首次实习 | 个人经验分享总结
java·开发语言·spring boot·spring·java-ee·intellij-idea
AMoon丶10 小时前
C++新特性-智能指针
linux·服务器·c语言·开发语言·c++·后端·tcp/ip
2501_9160088910 小时前
iPhone 手机硬件组件使用耗能历史记录查看,能耗查看
android·ios·智能手机·小程序·uni-app·iphone·webview