Q:

How to set a Common type for Callable

I want to implement a super class and it is a java.util.concurrent.Callable . The child class will return different types of objects for Callable. Therefore, I want set this super class callable's generic type as to be any type. Following is my super class declaration.
public abstract class AbsTaskRunner implements java.util.concurrent.Callable {   

I want to set generic type of Callable as any type.  
 public abstract class AbsTaskRunner implements java.util.concurrent.Callable <HERE_COMMON_TYPE> { 

A:

You can try with:
public abstract class AbsTaskRunner<T> implements java.util.concurrent.Callable<T>

Then the sub-classes can be either generic (like this):
public class GenericSubclass<T> extends AbsTaskRunner<T>

or extend AbsTaskRunner for some specific type (like this):
public class StringSubclass extends AbsTaskRunner<String>

