Я хотел бы выполнять разные методы в отдельном потоке в зависимости от параметров, предоставляемых конструктору. Однако интерфейс Callable позволяет только один из параметров возврата.Вызываем с разными типами возвращаемых данных
Он должен работать так:
Future<String> result =
executor.submit(ClassThatImplementsCallable(RETURN_STRING));
Future<Integer> result =
executor.submit(ClassThatImplementsCallable(RETURN_INT));
ClassThatImplementsCallable(RETURN_NOTHING);
Для возврата либо нулевой (соответственно ссылку на VOID) или любого другого типа, как строка или целое число, я должен использовать T без каких-либо границ, как это:
public static class CallableTest<T> implements Callable<T>{
T value;
CallableTest(T value) {
this.value = value;
}
public T call(){
return value;
}
}
Однако это не то, чего я хочу достичь, но также не имеет смысла расширять Void и реализовывать какой-либо другой интерфейс.
Если они не возвращают то же самое, они, вероятно, должны быть разными способами. Вы всегда можете вернуть значения игнорирования метода, чтобы вы знали. – thatidiotguy