【发布时间】:2013-03-29 15:20:00
【问题描述】:
我有一个实现 Iterable 的类,但有自己的 hasNext() 和 next() 方法,如下所示:
public class BLMovie implements Iterable<BLMovieFrame> {
@Override
public Iterator<BLMovieFrame> iterator() {
iteratorVar = 0;
return liste.iterator();
}
public boolean hasNext() {
if (loop)
return true;
return iteratorVar < liste.size();
}
public BLMovieFrame next() {
iteratorVar = (iteratorVar++)%(liste.size()-1);
return liste.get(iteratorVar);
}
public void remove() {
throw new UnsupportedOperationException();
}
我很确定这不是最好的方法,
关于 Iterable 的其他线程似乎并不关心自己的下一个方法,那么有人对我有什么建议吗?
【问题讨论】:
-
你真的需要重写haveext()和next()方法吗?
-
@TheEwook 是的,因为循环属性
-
@TheEwook 抱歉有点晚了,但我只是想到了这一点并想知道:我怎么能不覆盖这些方法,因为我必须在 iterator() 中定义一个新的迭代器?我只是将它们放在内部类中