Kotlin协程-尝试从挂起的函数返回ArrayList时类型不匹配

时间:2019-12-05 12:31:24

标签: android kotlin kotlin-coroutines

我有一个悬浮方法,该方法应该返回一个ArrayList。但是,在尝试这样做时,IDE会在协程范围内突出显示类型不匹配错误。

我的方法-

private suspend fun dbsearchHelper(query: String): ArrayList<String> {

    return withContext(Dispatchers.Default) {
        if (query.length > 3) {
            return@withContext SupportedPackagesManager.findStoreByName(query)
        }
    }
}

错误-

Type interference failed. Expected type mismatch:
required: kotlin.collections.ArrayList<String>
found: Any!

findStoreByName是Java方法。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

您需要拥有一个else分支,以便Kotlin可以明确知道您要返回的内容。

在您的情况下,Kotlin将withContext的返回类型设置为Any,因为if(query.length <= 3),您的withContext返回Unit。