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

相关推荐
姓刘的哦13 分钟前
RK3568开发板运行Qt
开发语言·qt
刘晓倩18 分钟前
Python3的Sequence
开发语言·python
消失的旧时光-194328 分钟前
彻底理解 synchronized:实例锁、类锁与自定义锁的原理和最佳实践
java·开发语言
QING61828 分钟前
Jetpack Compose Brush API 详解 —— 新手指南
android·kotlin·android jetpack
鹿里噜哩28 分钟前
Spring Authorization Server 打造认证中心(二)自定义数据库表
spring boot·后端·kotlin
Huanzhi_Lin33 分钟前
安卓连接夜神模拟器命令及原理
android
45288655上山打老虎1 小时前
【智能指针】
开发语言·c++·算法
AllBlue1 小时前
unity调用安卓方法
android·unity·游戏引擎
蜗牛攻城狮1 小时前
JavaScript 尾递归(Tail Recursion)详解
开发语言·javascript·ecmascript
Dxy12393102161 小时前
Python的PIL对象crop函数详解
开发语言·python