MutableLiveData 的预期不可为空值

问题描述

private val _users = mutablelivedata<List<User>>()
val users: LiveData<List<User>> get() = _users

fun getUsers() {
    viewmodelScope.launch {
        _users.value = users()
    }
}

suspend fun users(): List<User> {
    Todo("Not implemented")
}

我在 _users.value = users()

上遇到以下错误

预期的不可为空的值。检验信息: 此检查可确保 LiveData 值在显式声明为不可为空时不为空。

我使用的是生命周期版本 2.3.1。问题似乎出在挂起函数 users() 上。如果我删除挂起修饰符,它就可以正常工作。

解决方法

只需使用 private val _users:MutableLiveData<List<User>> = MutableLiveData() 而不是 private val _users = MutableLiveData<List<User>>()

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...