Java 使用协同程序时出现类型不匹配错误

Java 使用协同程序时出现类型不匹配错误,java,android,kotlin,android-room,kotlin-coroutines,Java,Android,Kotlin,Android Room,Kotlin Coroutines,我的viewModel中有以下内容 fun getUsernamePassword(inputUserName:String, inputPassword:String):List<User> = viewModelScope.launch(Dispatchers.IO) { return repository.getUsernamePassword(inputUserName, inputPassword) } fun getUsernamePasswor

我的viewModel中有以下内容

fun getUsernamePassword(inputUserName:String, inputPassword:String):List<User> = viewModelScope.launch(Dispatchers.IO) {
        return repository.getUsernamePassword(inputUserName, inputPassword)
    }
fun getUsernamePassword(inputUserName:String,inputPassword:String):List=viewModelScope.launch(Dispatchers.IO){
返回repository.getUsernamePassword(inputUserName,inputPassword)
}

但是,我得到一个错误,说
类型不匹配。必需:找到列表:作业
我可以做什么来解决此错误。最终目标是让函数在非黑线程上运行,并从主线程运行一部分,以避免冲突和错误。

viewModelScope.launch
返回执行实际回购操作的背景。在这种情况下,您可能需要一个可观察或LiveData来存储UI需要操作的用户列表

您可以在ViewModel中执行以下操作:

val userList = MutableLiveData<List<User>>()

fun getUsernamePassword(inputUserName:String, inputPassword:String) = viewModelScope.launch(Dispatchers.IO) {
    val list = repository.getUsernamePassword(inputUserName, inputPassword)
    userList.postValue(list)
}

我不确定它是否应该被标记为Java,如果它是Kotlin,嗯?Kotlin,但它也与Java相关。有什么帮助吗@corsiKaI的意思是,作为一个只做了15年Java的家伙,与Kotlin毫无关系,不,我甚至不知道第一句话想说什么。我所能说的就是检查
repository.getUsernamePassword(String,String)
是否返回一个列表而不是作业?好的,让我试试。好的,让我试试非常感谢你。当我对自己所做的事情有所了解时,我就明白了。
viewModel.userList.observe(viewLifecycleOwner, {
    // Place UI changes here
})