【发布时间】:2013-10-22 16:09:51
【问题描述】:
基于链表构建队列实现。由于两个错误,无法运行应用程序:
public class Queue<Integer> implements Iterable<Integer> {
...
public Iterator<Integer> iterator() {
return new ListIterator(first);
}
private class ListIterator<Integer> implements Iterator<Integer> {// error #1
private Node<Integer> current;
public ListIterator(Node<Integer> first) {
current = first;
}
public boolean hasNext(){ return current != null; }
public void remove() { throw new UnsupportedOperationException();}
public int next() { // error #2
if (!hasNext()) throw new NoSuchElementException();
int item = current.item;
current = current.next;
return item;
}
}
}
错误 #1: 错误:Queue.ListIterator 不是抽象的,并且不会覆盖 Iterator 中的抽象方法 next() 其中 Integer 是一个类型变量: Integer 扩展了类 Queue.ListIterator 中声明的 Object
错误 #2: 错误:Queue.ListIterator 中的 next() 无法在 Iterator 中实现 next() 返回类型 int 与 Integer 不兼容 其中 E,Integer 是类型变量: E 扩展接口 Iterator 中声明的 Object Integer 扩展了类 Queue.ListIterator 中声明的 Object
如何让它工作?
【问题讨论】:
-
你在使用 IDE 吗?
-
IntelliJ 和这些错误应该会告诉您该做什么。将
int替换为Integer。 -
不起作用,因为它修复了 error#2 和 error#1 但告诉 @Incompatible types 987654324@
-
Nvm 是泛型类型参数声明。