У меня есть класс, который реализует Iterable, но с собственными hasNext()
и next()
методами, как это:Java - Итерируемый с собственными 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 не похоже, беспокоятся о собственных методах, так кто-то имеет для меня совет?
Вам действительно нужно переопределить методы hasnext() и next()? – TheEwook
@ TheEwook Да из-за атрибута loop –
@ TheEwook Извините, что немного поздно, но я просто подумал об этом и задался вопросом: как я мог НЕ переопределить эти методы, так как я должен определить новый итератор в iterator() в любом случае? Я бы просто их во внутреннем классе –