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

相关推荐
dapeng2870几秒前
C++与Docker集成开发
开发语言·c++·算法
2501_945423542 分钟前
C++中的策略模式实战
开发语言·c++·算法
2301_792308254 分钟前
C++与自动驾驶系统
开发语言·c++·算法
hongtianzai7 分钟前
Laravel8.x核心特性全解析
java·c语言·开发语言·golang·php
2401_874732539 分钟前
模板编译期排序算法
开发语言·c++·算法
weixin_4219226911 分钟前
C++与Node.js集成
开发语言·c++·算法
chushiyunen14 分钟前
python cosyVoice实现tts文本转语音、音频(未完成)
开发语言·python·音视频
hongtianzai15 分钟前
Laravel6.x重磅发布:LTS版本新特性全解析
c语言·开发语言·php·laravel
kgduu17 分钟前
js之网络请求与远程资源
开发语言·javascript·网络
酉鬼女又兒19 分钟前
零基础入门前端JavaScript 核心语法:var/let/const、箭头函数与 setTimeout 循环陷阱全解析(可用于备赛蓝桥杯Web应用开发)
开发语言·前端·javascript·蓝桥杯