欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > Kotlin可空类型与非空类型以及`lateinit` 的作用

Kotlin可空类型与非空类型以及`lateinit` 的作用

2025/9/15 1:49:14 来源:https://blog.csdn.net/micro9981/article/details/139560693  浏览:    关键词:Kotlin可空类型与非空类型以及`lateinit` 的作用

在 Kotlin 中,变量可以是可空类型或非空类型。可空类型表示变量可以包含一个空值(null),而非空类型表示变量不能包含空值。

可空类型与非空类型

  • 非空类型:默认情况下,Kotlin 中的变量是非空类型。例如,var recyclerView: RecyclerView 表示这个变量永远不能为 null。在编译时,Kotlin 会强制保证非空类型的变量在任何时候都不为 null

  • 可空类型:可空类型变量可以包含 null 值。例如,var recyclerView: RecyclerView? 表示这个变量可以为 null。在使用可空类型变量时,必须进行空值检查以避免 NullPointerException

lateinit 的作用

使用 lateinit 修饰符可以声明一个非空类型的变量,并允许稍后初始化它。这在 Android 开发中很常见,因为许多视图组件(如 RecyclerView)需要在 onCreateonViewCreated 方法中初始化,而不能在声明时立即赋值。

如果不使用 lateinit,可以选择将变量声明为可空类型(即 RecyclerView?),但这样在每次使用该变量时都需要进行空值检查,增加了代码的复杂性。例如:

// 不使用 lateinit,声明为可空类型
private var recyclerView: RecyclerView? = nulloverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)// 初始化 recyclerViewrecyclerView = findViewById(R.id.my_recycler_view)// 使用 recyclerView 时需要进行空值检查recyclerView?.layoutManager = LinearLayoutManager(this)recyclerView?.adapter = MyAdapter(myDataset)
}

使用 lateinit 则可以避免每次使用变量时的空值检查:

// 使用 lateinit 声明非空类型变量
private lateinit var recyclerView: RecyclerViewoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)// 初始化 recyclerViewrecyclerView = findViewById(R.id.my_recycler_view)// 直接使用 recyclerView,无需空值检查recyclerView.layoutManager = LinearLayoutManager(this)recyclerView.adapter = MyAdapter(myDataset)
}

总结

使用 lateinit 修饰符可以在 Kotlin 中声明一个非空类型的变量,并允许稍后初始化它,从而避免了每次使用该变量时的空值检查,提高了代码的简洁性和可读性。

代码参考

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词