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

相关推荐
代码AI弗森3 分钟前
Git Bash 与 PowerShell:定位差异、使用场景与选择建议
开发语言·git·bash
代码游侠15 分钟前
C语言核心概念复习(一)
c语言·开发语言·c++·笔记·学习
蜕变的土豆19 分钟前
grpc-通关速成
开发语言·c++
-To be number.wan20 分钟前
Python数据分析:英国电商销售数据实战
开发语言·python·数据分析
xb113230 分钟前
C#生产者-消费者模式
开发语言·c#
电商API&Tina31 分钟前
乐天平台 (Rakuten) 数据采集指南
大数据·开发语言·数据库·oracle·json
zhougl9961 小时前
Java内部类详解
java·开发语言
Grassto1 小时前
11 Go Module 缓存机制详解
开发语言·缓存·golang·go·go module
代码游侠1 小时前
学习笔记——Linux内核与嵌入式开发3
开发语言·arm开发·c++·学习
怎么没有名字注册了啊1 小时前
C++ 进制转换
开发语言·c++