首页 > 移动平台 > 详细

Android Room与java.lang.NullPointerException与observeAsState

时间:2021-08-24 10:05:15      阅读:31      评论:0      收藏:0      [点我收藏+]
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

原文:https://www.cnblogs.com/--here--gold--you--want/p/15178229.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!