我正在尝试使用无界通配符,因为我有一些返回对象的 Callable,但我对对象不感兴趣(它们返回 null,我只是使用 Callable 而不是 Runnable 来抛出检查的异常)。
所以原则上我想这样做:
CompletionService<?> ecs = ...
Callable<?> = ...
Future<?> f = ecs.submit(c);
但在这里我得到一个错误说:
submit(Callable<capture#1-of ?>)
类型 中的方法CompletionService<capture#1-of ?>
不适用于参数 (Callable<capture#2-of ?>
)
稍后我只想调用 f.get() 来处理提交的任务中抛出的异常。
那么处理这个问题的正确方法是什么?