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

相关推荐
灰灰勇闯IT19 分钟前
RN路由与状态管理:打造多页面应用
开发语言·学习·rn路由状态
wd_cloud20 分钟前
QT/6.7.2/Creator编译Windows64 MySQL驱动
开发语言·qt·mysql
亭上秋和景清23 分钟前
指针进阶:函数指针详解
开发语言·c++·算法
胡萝卜3.024 分钟前
C++现代模板编程核心技术精解:从类型分类、引用折叠、完美转发的内在原理,到可变模板参数的基本语法、包扩展机制及emplace接口的底层实现
开发语言·c++·人工智能·机器学习·完美转发·引用折叠·可变模板参数
9ilk26 分钟前
【C++】--- C++11
开发语言·c++·笔记·后端
biter down1 小时前
C++ 函数重载:从概念到编译原理
开发语言·c++
モンキー・D・小菜鸡儿1 小时前
Android Jetpack Compose 基础控件介绍
android·kotlin·android jetpack·compose
无风之翼1 小时前
android15 休眠唤醒过程中有时候屏幕显示时间一闪而过
android·锁屏
yue0082 小时前
C# winform自定义控件
开发语言·c#
JANGHIGH3 小时前
c++ 多线程(三)
开发语言·c++