所以我用的ExecutorService,想要產生可調用,這樣我可以使用的invokeAll如何得到正確的語句中使用泛型
的可調用對象有不同的返回類型執行。這讓我覺得我可以以類似的方式,使用通配符
Set<Callable<?>> executedCallables = new HashSet<Callable<?>>();
executedCallables.add(serviceHelper.getOwnerDetails()); --> returns Callable<OwnerDetails>
executedCallables.add(iqmServiceHelper.getUserDetails()); --> returns Callable<UserDetails>
我添加語句的invokeAll
List<Future<? extends Object>> futures = executorService.invokeAll(executedCallables);
廣告這給了我編譯器錯誤The method invokeAll(Collection<? extends Callable<T>>) in the type ExecutorService is not applicable for the arguments (Set<Callable<?>>)
這我沒有得到如何解決得到完成。
有人可以指出使用中的錯誤和正確的用法。
剛擡起頭編譯器錯誤是JDK 6,我不認爲將是更高的版本不同的JDK
PS: - 有一個類似的StackOverflow線程以及這個Collection of Callable and Generics
感謝您的答覆。上述聲明構造良好我還沒有得到如何糾正最終陳述列表<未來<? extends Object >> futures = executorService.invokeAll(executedCallables); – Acewin
你不會拿出一個'List>',你會得到'List >'。 這裏沒有辦法使'T'成爲通配符。 –
diesieben07
謝謝,我會建議你把這點加到你的解決方案中 – Acewin