Как объявить Callable для выполнения функции, возвращающей void в Java?
Предположим, что я хотел бы запустить статический метод foo
асинхронно
void foo() throws Exception {...}
Так как foo
выбрасывает исключение, я бы предпочел создать Callable
и вызвать ExecutorService.submit
с ним, чтобы получить Future
.
Теперь мне интересно, как правильно объявить те Callable
и Future
.
Должен ли я объявить их
Callable<Void> and Future<Void>?
Ответы
Ответ 1
Должен ли я объявить их Callable<Void>
и Future<Void>
?
Да.
Void
похож на классы-оболочки Integer
, Long
и т.д. для примитивных типов int
, Long
и т.д. Вы можете сказать, что это класс-оболочка для Void
, хотя Void
не является типом.
Ответ 2
Я думаю, вы должны объявить их Callable<?>
и Future<?>
. Затем вы можете реализовать их в любом случае, включая Callable<Void>
и Future<Void>
.