【发布时间】:2020-07-12 12:04:06
【问题描述】:
我正在尝试使用 String 列表和 PublishRequest 对象作为参数声明两个挂起方法。但是 IDE 对此给出了错误。 错误是使函数之一成为内部函数或删除挂起。但我想在它们里面都使用协程。
override suspend fun publish(publishRequests: List<PublishRequest>) {
///code
}
suspend fun publish(events: List<String>) {
///code
}
PublishRequest Data 类是内部的。只有当我们添加 publish(events: List) 方法时,问题才会出现。 publish(publishRequests: List)
的代码运行良好你能解释一下为什么会这样吗?
【问题讨论】:
-
这可能是因为 PublicRequest 是内部的并且您的覆盖是公开的。您不能在公共函数中公开内部类型。只是一个猜测。无论如何,您发布的代码不足以回答您的问题。
-
@m0skit0 是的发布请求是内部的。有没有其他方法可以做到这一点? .
-
将函数设为 internal 或将类型设为 public(第一个首选是因为封装)。
-
@m0skit0 ,当我们只有方法覆盖挂起 fun publish(publishRequests: List
) { ///code }... 这个问题只有当我们尝试时才会出现添加新方法 -
就像我说的那样,仅凭该代码无法猜测。发布SSCCE。
标签: kotlin kotlin-coroutines kotlin-android-extensions