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

相关推荐
xxwl5855 分钟前
Python语言初步认识(1)
开发语言·python·学习
z落落9 分钟前
C# FileStream文件流读取文件
开发语言·c#
朝星11 分钟前
Android开发[14]:网络优化之OkHttp
android·okhttp·kotlin
砍材农夫11 分钟前
python环境|conda安装和使用(1)
开发语言·后端·python·conda
私人珍藏库14 分钟前
[Android] FX Player-安卓全格式播放器-比MX播放器好用
android·学习·工具·软件·多功能
星环科技25 分钟前
数据标准Agent ,让企业数据说同一种语言
java·开发语言·前端
写点啥呢29 分钟前
车机 Android 开机优化复盘:我怎么和 AI 一起把问题定位到 SystemUI
android·人工智能
dadaobusi40 分钟前
RISC-V 虚拟化:虚拟机TLB处理
java·开发语言
夏幻灵40 分钟前
深度解析 JavaScript 异步编程:从回调地狱到 Promise 的重构
开发语言·javascript·重构
鱼子星_44 分钟前
C++从零开始系列篇(二):C++入门——函数重载,引用,inline与nullptr
开发语言·c++·笔记