Я хочу написать асинхронный метод, который возвращает CompletableFuture
. Единственная цель в будущем - отслеживать, когда метод завершен, а не его результат. Лучше вернуть CompletableFuture<Void>
или CompletableFuture<?>
? Есть ли причина предпочесть одно или другое, или они взаимозаменяемы?
- Сам
CompletableFuture
возвращаетCompletableFuture<Void>
из многих своих методов. java.nio
имеетFuture<Void>
вAsynchronousSocketChannel
:Future<Void> connect(SocketAddress remote)
.- С другой стороны,
java.util.concurrent
классы, такие какExecutorService
иScheduledExecutorService
вернутьFuture<?>
: например, сFuture<?> submit(Runnable task)
.
Обратите внимание, что я спрашиваю только о типах возвращаемых данных, а не о списках параметров, объявлениях переменных или других контекстах.