Uso del método excepcional de CompletableFuture en Kotlin

Estoy tratando de manejar las excepciones CompletableFuture en Kotlin, pero no puedo averiguar cómo proporcionar los parameters adecuados. Entonces, por ejemplo, tengo:

CompletableFuture.runAsync { "sr" } .exceptionally{e -> {}}

pero luego el comstackdor se queja Cannot infer type parameter T

¿Cómo puedo solucionar esto?

    Un caso bastante complicado que se vuelve complicado debido a la magia de Kotlin 🙂

    La solución directa a su problema sería el siguiente código:

     CompletableFuture.runAsync {"sr"} .exceptionally({e -> null}) 

    La explicación detallada va aquí:

    El método runAsync acepta Runnable que significa que después de la ejecución devolverá Void . La function pasada a método exceptionally debe coincidir con el parámetro genérico de CompletableFuture por lo que en este caso particular, necesita ayudar a un comstackdor devolviendo el null explícitamente.

    Entonces lo siguiente se comstackrá sin problemas:

     CompletableFuture.runAsync {"sr"} .exceptionally({null}) CompletableFuture.runAsync {} .exceptionally({null}) 

    En el primer caso, la cadena "sr" simplemente se ignorará y no se devolverá, ya que runAsync acepta Runnable .

    Probablemente querías hacer algo como:

      CompletableFuture.supplyAsync {"sr"} .exceptionally({"sr_exceptional"}) 

    o:

     CompletableFuture.supplyAsync {"sr"} .exceptionally({e -> "sr_exceptional"})