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

相关推荐
Tony Bai5 分钟前
Go 性能分析的“新范式”:用关键路径分析破解高并发延迟谜题
开发语言·后端·golang
lly2024069 分钟前
MySQL 创建数据库
开发语言
farewell-Calm13 分钟前
Android Studio 添加第三方库
android·ide·android studio
minglie115 分钟前
Vitis HLS c转verilog
c语言·开发语言·fpga开发
她和夏天一样热19 分钟前
【实战篇】设计模式在开发中的真实应用
java·开发语言·设计模式
TheSumSt24 分钟前
Python丨课程笔记Part2:方法论进阶部分
开发语言·笔记·python
微爱帮监所写信寄信30 分钟前
微爱帮监狱寄信写信小程序:深入理解JavaScript中的Symbol特性
开发语言·javascript·网络协议·小程序·监狱寄信·微爱帮
ss27338 分钟前
线程池工作机制:从任务提交到执行的完整决策流程
java·开发语言
syt_10131 小时前
js基础之-如何理解js中一切皆对象的说法
开发语言·javascript·原型模式