In this tutorial, we will learn basic implementations for Callable interface  using lambda in java.

Anonymous Class providing an implementation for Callable interface.

Callable<String> callMyName = new Callable<String>() {
    @Override
    public String call() throws Exception {
        return "Anurag Anand";
    }
};

You can submit the above implementation to return any string value. The same can be done for any other primitive type or Object type.

Case 1: Implement a callable which returns a string

Callable<String> callMyName = () -> "Anurag Anand";

Case 2 : Implement a callable which returns an int

Callable<Integer> callMyName = () -> 1;

Case 3 : Implement a callable which returns a long

Callable<Long> callMyName = () -> 1L;

Case 4 : Implement a callable to return an Object of Long type

Callable<Long> callMyName = () -> new Long(10);

The same way as above, we can return different types of object and different types of primitive in lambda.

For a complex implementation,you can take a look at this.