java - 有人可以帮我将这个带有回调的 Kotlin 函数转换为 java 函数吗?
问题描述
到目前为止,我还没有接触过 kotlin。因此,我发现很难理解这个“回调”实际上是如何工作的。所以,我不知道如何将 kotlin 的这个“回调”功能写到 java 中。
fun stopStream(callback:(text:String)->Unit) {
if(bidiStream == null) return
bidiStream?.closeSend()
for (response in bidiStream!!) {
val queryResult = response.queryResult
Log.d(TAG, "Response Text: '${queryResult.responseText}'")
callback(queryResult.responseText)
}
bidiStream = null
queryInput = null
}
解决方案
您知道许多 IDE 都提供这样的转换吗?
(text:String)->Unit
接受 aString
并且什么也不产生,所以它是 a Consumer<String>
。除此之外没有太大变化
void stopStream(Consumer<String> callback) {
if(bidiStream == null) return;
bidiStream.closeSend();
for (Response response: bidiStream) {
var queryResult = response.getQueryResult();
Log.d(TAG, String.format("Response Text: %s"), queryResult.getResponseText());
callback(queryResult.getResponseText());
}
bidiStream = null;
queryInput = null;
}
推荐阅读
- python - 多层感知器梯度消失
- ios - 使用 Swift IOS 在不同 ViewController 中的相同功能
- android - 用于代码生成的 ANTLR Tool 版本 4.5.3 与当前运行时版本 4.7.1 不匹配
- docker - 使用 Azure 管道更新 JFrog Docker Registry 中的最新工件
- mapbox - 选择地理编码器结果后设置缩放级别
- webpack - Webpack - 如何确定在 webpack 中构建的目标是哪个项目
- javascript - WebdriverIO的“测试结束时”是否有一个钩子(或等效的解决方案)?
- r - read_csv() 将“\r”添加到 *.csv 输入
- .net - 如何在不重新启动应用程序的情况下激活运行时登录?
- c++ - extern 数组出现未定义的引用错误,但适用于 int