我想根据提供给构造函数的参数在单独的线程中执行不同的方法。但是,Callable 接口只允许一种返回参数。
它应该像这样工作:
Future<String> result =
executor.submit(ClassThatImplementsCallable(RETURN_STRING));
Future<Integer> result =
executor.submit(ClassThatImplementsCallable(RETURN_INT));
ClassThatImplementsCallable(RETURN_NOTHING);
要返回 null(分别是对 Void 的引用)或任何其他类型(如 String 或 Integer),我必须使用 T 没有任何边界,如下所示:
public static class CallableTest<T> implements Callable<T>{
T value;
CallableTest(T value) {
this.value = value;
}
public T call(){
return value;
}
}
但是,这不是我想要实现的,而且扩展 Void 并实现其他一些接口也没有任何意义。