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

相关推荐
..空空的人6 分钟前
C++基于websocket的多用户网页五子棋 ---- 模块介绍1
开发语言·c++·websocket
代码不停10 分钟前
Java模拟算法题目练习
java·开发语言·算法
彡皮18 分钟前
基于Qt,调用千问7B大模型,实现智能对话
开发语言·qt·大模型·千问7b
用户20187928316732 分钟前
Activity结束动画与System.exit(0)的黑屏之谜
android
LiLiYuan.34 分钟前
Arrays类和List接口的关联
java·开发语言·windows·python
武子康1 小时前
Java-170 Neo4j 事务、索引与约束实战:语法、并发陷阱与速修清单
java·开发语言·数据库·sql·nosql·neo4j·索引
7澄11 小时前
Java 实战:投票统计系统(HashMap 应用)
java·开发语言·intellij-idea·交互·控制台·hashmap
zzzsde1 小时前
【C++】红黑树:使用及实现
开发语言·c++·算法
点云SLAM1 小时前
C++ 中的栈(Stack)数据结构与堆的区别与内存布局(Stack vs Heap)
开发语言·数据结构·c++·内存布局·栈数据结构·c++标准算法·heap内存分配
枫子有风1 小时前
【go.sixue.work】2.2 面向对象:接口与多态
开发语言·后端·golang·xcode