public static <V>Future<V> submit(Callable<V> task){
  if (task == null) {
    throw new NullPointerException();
  }
  FutureTask<V> future=new FutureTask<V>(task);
  execute(future);
  return future;
}

public static < V > Future < V > submit ( Callable < V > task ) { if ( task == null ) { throw new NullPointerException ( ) ; } FutureTask < V > future = new FutureTask < V > ( task ) ; execute ( future ) ; return future ; }
submits a value - returning task for execution on the edt and returns a future representing the pending results of the task .
