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

13,263

Solution 1

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.

Solution 2

I think you should declare them Callable<?> and Future<?>. Then you can implement them anyway you want including Callable<Void> and Future<Void>.

Share:
13,263
Michael
Author by

Michael

Scala (moslty) programmer

Updated on June 14, 2022

Comments

  • Michael
    Michael almost 2 years

    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>?