Я хочу создать CompletableFuture с возвращаемым значением, которое выполняется на конкретном исполнителе в Kotlin.
Следующий код работает просто отлично.
return CompletableFuture.supplyAsync {
val commandHandler = registry.get<TCommand, TResponse>(command::class.java)
commandHandler.handle(command)
}
Однако, когда я пытаюсь передатьисполнитель не скомпилирует.
return CompletableFuture.supplyAsync({
val commandHandler = registry.get<TCommand, TResponse>(command::class.java)
commandHandler.handle(command)
}, exec)
Я попытался стать умным, написал версию Java и попросил Intellij скрыть ее в Kotlin, но в этой тоже была та же ошибка.Что я здесь не так делаю?
РЕДАКТИРОВАТЬ:
Я могу заставить его работать, выполнив следующие действия, но это кажется ненужным.Может кто-нибудь объяснить, почему это работает, а другие методы нет.Есть ли другие способы написать этот код?
return CompletableFuture.supplyAsync(Supplier {
commandHandler.handle(command)
}, exec)