を使用して正しい文を取得し、私が呼び出し可能で異なる戻り値の型を持っているinvokeAllは、どのように私はExecutorServiceのを使用していジェネリック
を使用してそれらを実行できるように、呼び出し可能オブジェクトを生成したかったです。これは私が、私はこれが私のコンパイラエラー私が解決する方法を得ていないのですThe method invokeAll(Collection<? extends Callable<T>>) in the type ExecutorService is not applicable for the arguments (Set<Callable<?>>)
を与える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>
を使用して成し遂げることができると思いました。
誰かが使用上の誤りと正しい使用法を指摘してください。コンパイラエラーがJDK 6からだと私は考えていないまで
ジャストヘッドが上位バージョンで異なることになるだろうJDK
PS: - 同様のStackOverflowのスレッドがこのCollection of Callable and Generics
上にもあります
応答ありがとうございます。上のステートメント構文は問題ありませんが、私はまだ最終ステートメントを修正する方法はありませんList> futures = executorService.invokeAll(executedCallables); –
Acewin
あなたは 'List> 'を実行すると、' List > 'が得られます。 ここで 'T'をワイルドカードにする方法はありません。 –
diesieben07
ありがとう、私はあなたのソリューションにこの点を追加することをお勧めします – Acewin