我正在尝试创建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子类型的队列。

10-07 14:59