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

相关推荐
sunbofiy2315 小时前
去掉安卓的“读取已安装应用列表”,隐私合规
android
cch891815 小时前
DCATAdmin后台框架极速上手
android
和小潘一起学AI15 小时前
CentOS 7安装Anaconda
开发语言·python
Ehtan_Zheng15 小时前
ActivityMetricsLogger 深度剖析:系统如何追踪启动耗时
android
努力努力再努力dyx15 小时前
【无标题】
开发语言·python
傻小胖16 小时前
Object.defineProperty() 完整指南
开发语言·前端·javascript
xyx-3v16 小时前
qt创建新工程
开发语言·c++·qt
小陈工16 小时前
Python Web开发入门(十六):前后端分离架构设计——从“各自为政”到“高效协同”
开发语言·前端·数据库·人工智能·python
前进的李工16 小时前
MySQL用户管理与权限控制指南(含底层架构说明)
开发语言·数据库·sql·mysql·架构
少司府16 小时前
C++基础入门:类和对象(中)
c语言·开发语言·c++·类和对象·运算符重载·默认成员函数