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

相关推荐
张风捷特烈5 小时前
Flutter 伪3D绘制#03 | 轴测投影原理分析
android·flutter·canvas
我不会编程5557 小时前
Python Cookbook-5.1 对字典排序
开发语言·数据结构·python
李少兄7 小时前
Unirest:优雅的Java HTTP客户端库
java·开发语言·http
无名之逆7 小时前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
似水এ᭄往昔7 小时前
【C语言】文件操作
c语言·开发语言
啊喜拔牙7 小时前
1. hadoop 集群的常用命令
java·大数据·开发语言·python·scala
xixixin_8 小时前
为什么 js 对象中引用本地图片需要写 require 或 import
开发语言·前端·javascript
W_chuanqi8 小时前
安装 Microsoft Visual C++ Build Tools
开发语言·c++·microsoft
anlogic8 小时前
Java基础 4.3
java·开发语言
omegayy8 小时前
Unity 2022.3.x部分Android设备播放视频黑屏问题
android·unity·视频播放·黑屏