Comment déclarer Callable pour exécuter une fonction renvoyant void en Java?

Supposons que je souhaite exécuter la méthode statique foo manière asynchrone

 void foo() throws Exception {...} 

Puisque foo lève une exception, je préférerais créer un Callable et invoquer ExecutorService.submit pour obtenir un Future .

Maintenant, je me demande comment déclarer ceux qui sont Callable et Future correctement. Dois-je les déclarer

 Callable and Future? 

Devrais-je les déclarer Callable et Future ?

Oui.

Void est similaire aux classes wrapper Integer , Long etc. pour les types primitifs int , long etc. On pourrait dire que c’est une classe wrapper pour void , même si void n’est pas vraiment un type.

Je pense que vous devriez les déclarer Callable Et Future . Vous pouvez ensuite les implémenter de toute façon, y compris Callable et Future .