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

相关推荐
头发还在的女程序员21 小时前
基于JAVA语言的短剧小程序-抖音短剧小程序
java·开发语言·小程序
JHC00000021 小时前
Python PDF 相关操作
开发语言·python·pdf
温轻舟21 小时前
Python自动办公工具01-Excel文件编辑器
开发语言·python·编辑器·excel·温轻舟
TDengine (老段)1 天前
TDengine 转换函数 TO_JSON 用户手册
android·大数据·数据库·json·时序数据库·tdengine·涛思数据
q***42821 天前
SpringCloudGateWay
android·前端·后端
卫生纸不够用1 天前
Appium-锁屏-Android
android·appium
阿拉斯攀登1 天前
安卓工控机 OTA 升级方案(SpringBoot+MQTT)
android·spring boot·物联网·iot
纵有疾風起1 天前
C++——多态
开发语言·c++·经验分享·面试·开源
顾林海1 天前
从0到1搭建Android网络框架:别再让你的请求在"路上迷路"了
android·面试·架构
氵文大师1 天前
A机通过 python -m http.server 下载B机的文件
linux·开发语言·python·http