合同
Iterator
是迭代一系列对象的“唯一前进”方式。
正如您在评论中提到的,您正在尝试记录
迭代器
,但仍然在其他地方使用迭代器。
不过,您可以通过包装
迭代器
使用自定义类调用
迭代器
并将值记录为
next
方法被调用。
有点老套。一般不推荐,但在调试情况下可能有用。
你可以建造这个
WrappedIterator
使用原件
迭代器
作为参数,然后传递
包装器
到使用它的代码。
public class WrappedIterator<T> implements Iterator<T> {
private Iterator<T> iterator;
public WrappedIterator(Iterator<T> iterator) {
this.iterator = iterator;
}
@Override
public void remove() {
this.iterator.remove();
}
@Override
public boolean hasNext() {
return this.iterator.hasNext();
}
@Override
public T next() {
T next = iterator.next();
System.out.println(next);
return next;
}
}