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

相关推荐
我是场13 分钟前
我的NPI项目之-Touch的EE特性
android·arm开发
谢亮_vipxieliang13 分钟前
Go GMP调度模型——从原理到实战的完整指南
开发语言·网络·golang
天空之城--14 分钟前
Android一周动态:AI编程、Compose与车载生态新信号
android·flutter
聪明蛋子哟40 分钟前
Python与Java双栈实战:手撸一个支持RAG与Tool Calling的高性能Agent框架
java·开发语言·python
谢亮_vipxieliang41 分钟前
Go Context 控制协程生命周期
开发语言·golang
xuxigifxfh1 小时前
HJ4 字符串分隔
java·开发语言·华为机考
MayZork1 小时前
Qt 开发集成CMake + vcpkg
开发语言·c++·qt
零基础1231 小时前
PDF 处理工具全攻略:pdf24、PDFgear、Adobe Acrobat DC 与 Stirling-PDF 深度对比
java·开发语言·pdf
Java后端的Ai之路1 小时前
01-React基础教程
开发语言·前端·python·react.js·前端框架
恋猫de小郭1 小时前
Dart 4.0 要彻底移除 dart:mirrors,Augmentations 应该要来了
android·前端·flutter