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

相关推荐
Tony Bai2 小时前
高并发后端:坚守 Go,还是拥抱 Rust?
开发语言·后端·golang·rust
wjs20242 小时前
Swift 类型转换
开发语言
秃了也弱了。2 小时前
python实现定时任务:schedule库、APScheduler库
开发语言·python
weixin_440730503 小时前
java数组整理笔记
java·开发语言·笔记
踏雪羽翼3 小时前
android TextView实现文字字符不同方向显示
android·自定义view·textview方向·文字方向·textview文字显示方向·文字旋转·textview文字旋转
Thera7773 小时前
状态机(State Machine)详解:原理、优缺点与 C++ 实战示例
开发语言·c++
lxysbly3 小时前
安卓玩MRP冒泡游戏:模拟器下载与使用方法
android·游戏
niucloud-admin3 小时前
java服务端——controller控制器
java·开发语言
夏幻灵4 小时前
JAVA基础:基本数据类型和引用数据类型
java·开发语言
cike_y4 小时前
Spring-Bean的作用域&Bean的自动装配
java·开发语言·数据库·spring