我正在尝试创建ThreadPoolExecutor:
// Thingy implements Delayed and Runnable
ExecutorService executor = new ThreadPoolExecutor(1, 1, 0l, TimeUnit.SECONDS, new DelayQueue<Thingy>());
编译器说“找不到符号”:
symbol : constructor ThreadPoolExecutor(int,int,long,java.util.concurrent.TimeUnit,java.util.concurrent.DelayQueue<Thingy>)
但我不明白-
DelayQueue
实现BlockingQueue
,所以我不应该能够使用this constructor吗? 最佳答案
这是一个泛型问题。您不能使用DelayQueue<Thingy>
,它必须是DelayQueue<Runnable>
,因为ThreadPoolExecutor
构造函数未声明为接受Runnable
子类型的队列。