У меня есть объект, в который я хотел бы реализовать пользовательскую итерацию, но:
- Я не хочу создавать все следующие шаблоны одновременно.
- Я хочу, чтобы он работал в расширенных циклах for, но я не хочу создавать вторичный объект
Iterator
для всей действительной итерации, поскольку для итерации требуется доступ к закрытому полю. - Я хочу требовать создания второго объекта, а не второго итератора.
Поэтому мое решение заключалось в том, чтобы реализовать как Iterator
, так и Iterable
, и включить следующий методв моей реализации:
@Override
public java.util.Iterator iterator() {
return this;
}
Это нормально, практика?Если это не так, что я должен сделать, чтобы правильно обойти эту проблему?