Android Room与java.lang.NullPointerException与observeAsState
2021/8/24 1:05:38
本文主要是介绍Android Room与java.lang.NullPointerException与observeAsState,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
val itemList: List<Message>? by messageViewModel.messageList.observeAsState() MessageWindow(itemList = itemList!!)
报指针null错误的原因就是observeAsState函数的问题,
obserAsState函数有两个版本,一个版本是赋予初始值,一个版本是没有初始值,即我报错的这个版本。
因为没有初始值,结果它会返回null!
因为我的itemList是在viewmodel中启动后台线程进行查询的,主线程运行地比后台线程快,所以主线程运行到obser这一行的时候,数据还没有准备好,结果返回null,结果就和下面那一行冲突了。
解决办法就是使用obser的另一个版本的函数,赋予一个初始值,这样就不会报null错。
val itemList: List<Message>? by messageViewModel.messageList.observeAsState(listOf())
这篇关于Android Room与java.lang.NullPointerException与observeAsState的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-28中外程序员到底有啥区别?
- 2024-05-25外企也半夜发布上线吗?
- 2024-05-24鸿蒙原生应用再新丁!芒果TV 入局鸿蒙
- 2024-05-22基本概念
- 2024-05-22检索数据
- 2024-05-22排序数据
- 2024-05-22基础过滤数据
- 2024-05-22通过逻辑操作符过滤数据
- 2024-05-22通过通配符过滤数据
- 2024-05-22字段的拼接与计算