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

相关推荐
Kapaseker31 分钟前
你不看会后悔的2025年终总结
android·kotlin
半桶水专家38 分钟前
go语言中的结构体嵌入详解
开发语言·后端·golang
在屏幕前出油1 小时前
二、Python面向对象编程基础——理解self
开发语言·python
阿方索2 小时前
python文件与数据格式化
开发语言·python
weixin_440730503 小时前
java结构语句学习
java·开发语言·学习
JIngJaneIL3 小时前
基于java+ vue医院管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
量子联盟3 小时前
功能完整的PHP站点导航管理系统php程序;开源免费下载
开发语言·php
仙俊红3 小时前
在 Java 中,`==` 和 `equals()` 的区别
java·开发语言·jvm
alexhilton3 小时前
务实的模块化:连接模块(wiring modules)的妙用
android·kotlin·android jetpack
JIngJaneIL4 小时前
基于java + vue校园跑腿便利平台系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot