Sarah Wisher:
No tengo ninguna exposición a Kotlin hasta ahora. Y así, me resulta difícil entender cómo esta 'callback' funciona realmente. Así que, no podía encontrar la manera de escribir esta función 'callback' de Kotlin a 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
}
Andrónico:
Usted sabe que muchos idus ofrecen una conversión de este tipo?
(text:String)->Unit
toma una String
y produce nada, así que es una Consumer<String>
. Aparte de eso no hay muchos cambios
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;
}