Alguien me puede ayudar en la conversión de esta función Kotlin con devolución de llamada a una función de Java?

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)->Unittoma una Stringy 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;
}

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=349814&siteId=1
Recomendado
Clasificación