zak.taccardi
12/15/2017, 4:06 PMCompletableFuture<T>
. But we have mixed kotlin/java code. Does that mean we cannot use Deffered<T>
?r4zzz4k
12/15/2017, 4:41 PMDeferred<T>
is await()
, which is suspend
function. As you may know, you can't invoke such functions from Java code. So I believe your best bet is to use kotlinx-coroutines-guava
module which binds Guava's ListenableFuture
(available for Java 7) and coroutines(https://github.com/Kotlin/kotlinx.coroutines/tree/master/integration/kotlinx-coroutines-guava).
If the size of the Guava is a concern and it's not used in the project otherwise, it might be an option to pull in streamsupport
library (https://github.com/streamsupport/streamsupport) -- it has backport of CompletableFuture<T>
for previous Java versions. You'll have to provide coroutine wrappers yourself though, because package name is different, so kotlinx-coroutines-jdk8
won't work as is. You might be able to just repackage jar changing package name.