正确扩展ArrayDeque

时间:2017-12-15 20:03:04

标签: java inheritance queue

我无法延长ArrayDeque。我的问题可以被提炼(mcve?)到下面的内容:

我的队列只接受键值对象。

import java.util.AbstractMap.SimpleEntry;
import java.util.ArrayDeque;

public class TicketsQueue<E> extends ArrayDeque<E> {

    transient ArrayDeque<SimpleEntry<String, String>> tickets = new ArrayDeque<SimpleEntry<String, String>>();

    public boolean offer(String category, String ticketId) {
        return tickets.offer(new SimpleEntry<String, String>(category, ticketId));
    }
}

我也有自定义poll()方法,但我不认为这与我的问题相关。 <{1}}我打算使用的大多数其他内容。

然后我尝试使用我的ArrayDeque

TicketsQueue

这失败了。我做错了什么?

2 个答案:

答案 0 :(得分:0)

我已将实施最小化如下。我希望这可以解决你的问题。

{{1}}

答案 1 :(得分:0)

在阅读了关于协会的内容之后,我发现了以下修复:

public class TicketsQueue<E> extends ArrayDeque<E> {

    public boolean offer(String category, String ticketId) {
        return offer((E) new SimpleEntry<String, String>(category, ticketId));
    }
}

这使我的TicketsQueueTest通过。