【Kotlin入门】延迟初始化

本文讲解了Android应用中,如何避免因未初始化导致的问题,重点介绍了变量初始化的时机,尤其是在`MsgAdapter`实例的使用上,并提供了在`onClick`方法中正确处理初始化状态的示例。作者依据《第一行代码》郭霖的指导,强调了确保变量在使用前完成初始化的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

没有延迟初始化的时候:

priavte var adapter : MsgAdapter?=null //需要首先赋值为null

//在接下来的方法中对其初始化
override fun onCreate(){
		adapter = MsgAdapter(msgList)
}

//即便已经初始化,在下面方法中仍然需要判空
override fun onClick(){
		adapter?.notifyItemInserted(msgList.size-1)
}

延迟初始化

private lateinit var adapter:MsgAdapter // 不需要赋与初始值null

//初始化过程
...
//
override fun onClick(){
		adapter.notifyItemInserted(msgList.size-1)//这里就不需要判空了
}

注意:一定要在确定这个变量在被任何地方调用之前已经完成了初始化操作,不然无法保证安全性

判断一个代码是否已经完成初始化:

if(!::adapter.isInitialized){//固定写法

}

内容来源《第一行代码》郭霖

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值