我有这个简单的代码
public String toString() {
**Iterator it = list.iterator();**
String s;
while(it.hasNext()){
s = s + " " + Integer.toString(it.next());
}
System.out.println(s);
// IMPLEMENT THIS METHOD VIA AN ITERATOR
// MAKE SURE THE OUTPUT PRODUCED BY THE METHOD
// DISPLAYS THE LEAST SIGNIFICANT BIT TO THE RIGHT.
}
在带星号的行中,我得到以下编译错误。
Error: incompatible types
required: Iterator
found: java.util.Iterator<java.lang.Integer>
我已经试过了,
**Iterator<Integer> it = list.iterator();**
我明白了,Error: type Iterator does not take parameters
编辑 *
我忘了提,我有自己的接口方法实现。
/*
* Inner class to implement the iterator for the <code>BitList</code>.
*/
private class BitListIterator implements Iterator {
/*
* A reference to the current <code>Node</code> in the iterator.
*/
private Node current = null;
/*
* The expected modification count variable.
* Needed for the "fast-fail" implementation of the iterator.
*/
private int expectedModCount = modCount;
/*
* Advances the iterator to the next element in the list.
*/
public int next() {
checkValid();
if (current == null) {
current = first ;
} else {
current = current.next ; // move the cursor forward
}
if (current == null)
throw new NoSuchElementException() ;
return current.value ;
}
/**
* Inserts a new <code>int</code> value immediately before the next element that would be returned by <code>next()</code>.
*/
public void add(int newElement) {
Node newNode;
if (current == null) {
first = new Node(newElement, first);
current = first;
} else {
current.next = new Node(newElement, current.next);
current = current.next;
}
modCount++ ;
expectedModCount++ ;
}
/**
* Indicates whether there is a next element in the list being traversed or not.
*/
public boolean hasNext() {
return ((current == null) && (first != null)) ||
((current != null) && (current.next !=null));
}
/**
* Checks whether this iterator remains valid, i.e. no concurrent modifications have been made on the list.
*/
private void checkValid() {
if (expectedModCount != modCount)
throw new ConcurrentModificationException();
}
} // end of BitListIterator class
因此,如果导入包,我会收到以下错误
Error: BitList.BitListIterator is not abstract and does not override abstract method remove() in java.util.Iterator
Error: next() in BitList.BitListIterator cannot implement next() in java.util.Iterator
return type int is not compatible with java.lang.Object
我有 jdk 1.7 及其正在使用中。
任何想法肯定会有所帮助。
谢谢
姆贾尔2
我怀疑你没有在文件的顶部import java.util.Iterator;
。
我怀疑你还没有用类型声明list
。试试这个:
private List<Integer> list = new ArrayList<Integer>();
此外,该消息表明您导入了错误的Iterator
类,如果您在使用 IDE 时不小心,可能会发生这种情况。确保 import java.util.Iterator;
和 迭代器类的其他导入不显示在 Java 文件的顶部。