मुझे समझ में क्यों असफल इस कोड संकलन नहीं होगाinvokeAll() <Callable<T>>
ExecutorService executor = new ScheduledThreadPoolExecutor(threads);
class DocFeeder implements Callable<Boolean> {....}
...
List<DocFeeder> list = new LinkedList<DocFeeder>();
list.add(new DocFeeder(1));
...
executor.invokeAll(list);
त्रुटि संदेश है एक संग्रह स्वीकार करने को तैयार नहीं है DocFeeder
, जो Callable<Boolean>
लागू करता है - क्या चल रहा है ?!
नहीं, यह * नहीं * (जावा 5 के खिलाफ) तैयार की है चाहिए - उसकी वजह से बहुत भिन्न समस्या है। जेनेरिक में मूल रूप से भिन्नता उस तरीके से काम नहीं करती है जिसकी आप अपेक्षा करते हैं, और नहीं - यह खतरनाक होगा। –
(बेशक, उन्हें Java 6 में जिस तरीके से जावा 6 में किया गया था, उसे विधि घोषित करनी चाहिए थी - लागू फिक्स पूरी तरह उपयुक्त है।) –
फिक्स अनुचित है क्योंकि इसका मतलब है कि आप दोनों 1.5 के लिए एक एक्जिक्यूटर्स सेवा को साफ़ रूप से नहीं लिख सकते और 1.6। (jsr166_ ने दोनों कॉकअप के लिए माफी मांगी है।) –