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

相关推荐
小白学大数据1 分钟前
Python 多线程爬取社交媒体品牌反馈数据
开发语言·python·媒体
祝余Eleanor30 分钟前
Day 31 类的定义和方法
开发语言·人工智能·python·机器学习
低调小一35 分钟前
在 Android 上获取视频流逐帧时间戳并与 GPS/IMU 对齐(CameraX 实践)
android
fish_xk1 小时前
c++基础扩展
开发语言·c++
阿沁QWQ1 小时前
C++继承
开发语言·c++
老华带你飞1 小时前
汽车销售|汽车报价|基于Java汽车销售系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·后端·汽车
lsx2024061 小时前
SQL LCASE() 函数详解
开发语言
4311媒体网1 小时前
C语言实现简单的二分查找算法
c语言·开发语言·算法
Android_Trot1 小时前
Flutter android 多渠道配置,多包名、icon、等配置。
android·flutter
无限进步_1 小时前
C语言实现贪吃蛇游戏详解
c语言·开发语言·数据结构·c++·后端·算法·游戏