Я хочу реализовать такой метод:
public Iterator<File> getFiles(String root) {
// return an Iterator looping through all files in root and all files in sub-directories of roots (recursively)
}
В C # это легко реализовать с помощью ключевого слова yield return
. Я подозреваю, что в Java мне пришлось написать много сложного кода, чтобы сделать это. Есть ли хорошее решение этой проблемы?
Редактировать: Я хочу, чтобы возвращаемый Итератор был "ленивым", т. Е. Возвращать новый Файл только при вызове next()
. (Это поведение, которое предлагает C # yield return
.)