kotlin: lateinit的应用

一,lateinit的作用

1、特性

  • 修饰可变变量:仅用于 var 声明。
  • 手动初始化:开发者需在适当位置(如生命周期回调)显式初始化。
  • 非空类型:只能用于非空类型(如 StringView),不支持基本数据类型(如 IntBoolean)。
  • 异常风险:访问未初始化的变量会抛出 UninitializedPropertyAccessException
  • 无线程安全:需自行处理多线程环境下的初始化。

2、适用场景

  • Android 组件初始化:如 Activity/Fragment 中的 View 绑定。
  • 依赖注入:框架(如 Dagger)在运行时注入的变量。
  • 明确生命周期:确保在使用前完成初始化(如 onCreate() 中初始化)。

二,代码例子:

class MyActivity : AppCompatActivity() {
    private lateinit var button: Button // 非空,延迟初始化

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        button = findViewById(R.id.btn_submit) // 手动初始化
        button.setOnClickListener { /* ... */ }
    }
}

 

posted @ 2025-06-22 12:50  刘宏缔的架构森林  阅读(67)  评论(0)    收藏  举报