java - 无法实现 Queue - 不覆盖抽象方法 offer(java.lang.Object)

标签 java

我正在尝试实现 Java 1.6 队列接口(interface),但出现错误:

MyBoundedQueue.java:27: MyBoundedQueue 不是抽象的,不会覆盖 java.util.Queue 中的抽象方法 offer(java.lang.Object)

我真正不明白的是Queue类中没有offer(Object)方法。 Java 1.6 API for Queue说有一个方法 boolean offer(E e),其中 E 是一个参数化类型,事实上,我已经实现了它,如下所示。

有什么帮助吗?

import java.util.ArrayDeque;
import java.util.Iterator;
import java.util.Queue;

public class MyBoundedQueue<ItemType> implements Queue
{
    private int _maxSize;
    private ArrayDeque<ItemType> _window;

    public MyBoundedQueue(int maxSize)
    {
        _maxSize = maxSize;
        _window = new ArrayDeque<ItemType>(_maxSize);
    }

    public boolean add(ItemType item)
    {
        if (_window.size() >=  _maxSize)
        {
            _window.removeFirst();
        }

        _window.addLast(item);
    }

    public ItemType element()
    {
        return _window.element();
    }

    public boolean offer(ItemType item)
    {
        add(item);
        return true;
    }

    public ItemType peek()
    {
        return _window.peek();
    }

    public ItemType poll()
    {
        return _window.poll();
    }

    public ItemType remove()
    {
        return _window.remove();
    }

    public void clear()
    {
        _window.clear();
    }

    public int size()
    {
        return _window.size();
    }

    public Iterator<ItemType> iterator()
    {
        return _window.iterator();
    }


}

最佳答案

您需要将其更改为:

public class MyBoundedQueue implements Queue<ItemType>

它告诉您 offer(Object) 因为如果没有通用类型,它就会是这样。您也不需要为您的类指定通用类型……您没有在任何地方使用通用类型。

如果你想让你的类使用泛型,你会想这样做:

public class MyBoundedQueue<T> implements Queue<T> {
...

在您当前拥有ItemType 的任何地方,您都将使用T

关于java - 无法实现 Queue - 不覆盖抽象方法 offer(java.lang.Object),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9625042/

相关文章:

java - 在 java 中,我想生成编译时错误而不是运行时错误

java - 在Java(j2me)中更改 vector 中的整数的正确方法是什么

java - 需要帮助使用正则表达式在 java 中拆分字符串

java - 如何在没有 main 函数的情况下从命令提示符运行 JUnit 测试

java - 尝试访问 dao bean 时 Autowiring 依赖项的注入(inject)失败

java - 结果集不可更新

java - 如何在 hibernate 中以特定顺序创建表列?

Java - 从方法返回后图形被删除

java - SQL使用一个或多个sql表?

Java套接字,获取图像文件但无法打开