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

相关推荐
VincentStory2 小时前
分享一个项目中遇到的一个算法题
android·算法
钢铁男儿3 小时前
Python 生成数据(随机漫步)
开发语言·python·信息可视化
正经教主3 小时前
【菜鸟飞】在vsCode中安装python的ollama包出错的问题
开发语言·人工智能·vscode·python·ai·编辑器
Dongliner~3 小时前
【QT:多线程、锁】
开发语言·qt
鹏神丶明月天4 小时前
mybatis_plus的乐观锁
java·开发语言·数据库
极客代码4 小时前
Unix 域套接字(本地套接字)
linux·c语言·开发语言·unix·socket·unix域套接字·本地套接字
yechaoa4 小时前
【揭秘大厂】技术专项落地全流程
android·前端·后端
Zhuai-行淮4 小时前
施磊老师高级c++(一)
开发语言·c++
ylfhpy4 小时前
Java面试黄金宝典1
java·开发语言·算法·面试·职场和发展
神秘的土鸡4 小时前
Centos搭建Tomcat服务器:我的实战经验分享(成功版本 详细!)
linux·开发语言·python·tomcat·web