Java 如何使用泛型获得正确的语句

Java 如何使用泛型获得正确的语句,java,generics,collections,Java,Generics,Collections,所以我使用ExecutorService并希望生成可调用项,以便使用invokeAll执行它们 List<Future<? extends Object>> futures = executorService.invokeAll(executedCallables); 可调用项具有不同的返回类型。这让我觉得我可以用通配符完成 Set<Callable<?>> executedCallables = new HashSet<Callable&

所以我使用ExecutorService并希望生成可调用项,以便使用invokeAll执行它们

List<Future<? extends Object>> futures = executorService.invokeAll(executedCallables);
可调用项具有不同的返回类型。这让我觉得我可以用通配符完成

Set<Callable<?>> executedCallables = new HashSet<Callable<?>>();
executedCallables.add(serviceHelper.getOwnerDetails()); --> returns Callable<OwnerDetails>
executedCallables.add(iqmServiceHelper.getUserDetails()); --> returns Callable<UserDetails>
Set>();
ExecuteCallables.add(serviceHelper.getOwnerDetails());-->返回可调用的
ExecuteCallables.add(iqmServiceHelper.getUserDetails());-->返回可调用的
以类似的方式,我为invokeAll添加了语句

List<Future<? extends Object>> futures = executorService.invokeAll(executedCallables);

List问题在于invokeAll的签名有点太严格了。应该是
collection谢谢您的回复。上面的语句构造很好,我仍然不知道如何纠正最终语句列表你不会得到一个
列表这对我来说编译得很好:
Callable foo=()->”;Set=newhashset();set.add(foo::call);ExecutorService服务=null;//把合适的东西放在这里,List futures=service.invokeAll(set)我意识到我没有检查最后的错误是未处理的异常。已将此标记为正确的解决方案始终是小问题:D
try {
    List<Future<Object>> futures = executorService.invokeAll(executedCallables);
} catch (InterruptedException e) {
    e.printStackTrace();
}