总是创建惰性初始化的对象

Asw*_*aji 3 android kotlin

在某些情况下,不需要我的广播接收器,因此需要检查接收器是否为空,但不知何故该对象不为空,即使不使用它并导致崩溃。

private val myBroadCastReceiver by lazy {
   MyBroadcastReceiver()
}
if(myBroadCastReceiver != null) unregisterReceiver(myBroadCastReceiver)
Run Code Online (Sandbox Code Playgroud)

Arj*_*unA 5

当您尝试空检查时,它已初始化,因此它不为空。尝试这个而不是偷懒。

private var myBroadCastReceiver : MyBroadcastReceiver? = null
Run Code Online (Sandbox Code Playgroud)

或尝试这个答案 Kotlin: 检查惰性 val 是否已初始化

  • /sf/ask/2563622421/\您可以通过此了解哪个适合使用 Lateinit 或延迟初始化 (2认同)