25 |
|
public abstract class AbstractExecutorService implements ExecutorService { |
26 |
|
|
27 |
|
public Future<?> submit(Runnable task) { |
28 |
+ |
if (task == null) throw new NullPointerException(); |
29 |
|
FutureTask<Object> ftask = new FutureTask<Object>(task, null); |
30 |
|
execute(ftask); |
31 |
|
return ftask; |
32 |
|
} |
33 |
|
|
34 |
+ |
public <T> Future<T> submit(Runnable task, T result) { |
35 |
+ |
if (task == null) throw new NullPointerException(); |
36 |
+ |
FutureTask<T> ftask = new FutureTask<T>(task, result); |
37 |
+ |
execute(ftask); |
38 |
+ |
return ftask; |
39 |
+ |
} |
40 |
+ |
|
41 |
|
public <T> Future<T> submit(Callable<T> task) { |
42 |
+ |
if (task == null) throw new NullPointerException(); |
43 |
|
FutureTask<T> ftask = new FutureTask<T>(task); |
44 |
|
execute(ftask); |
45 |
|
return ftask; |