How to declare Callable to execute function returning void in Java?

Michael picture Michael · Aug 29, 2013 · Viewed 13k times · Source

Suppose I would like to run static method foo asynchronously

void foo() throws Exception {...} 

Since foo throws an exception I would prefer create a Callable and invoke ExecutorService.submit with it to get a Future.

Now I wonder how to declare those Callable and Future properly. Should I declare them

Callable<Void> and Future<Void>?

Answer

Jesper picture Jesper · Aug 29, 2013

Should I declare them Callable<Void> and Future<Void>?

Yes.

Void is similar to the wrapper classes Integer, Long etc. for the primitive types int, long etc. You could say it's a wrapper class for void, even though void is not really a type.