Что произойдет при выполнении следующиего кода ?

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;

public class Test<T> implements Iterator<T>{   // 1

    private List<T> list = new ArrayList<T>(); // 2

    public void addList(T... ts) {
        Collections.addAll(list, ts);          // 3
    }

    public static void main(String args[]) {
        Test<String> t  = new Test<String>();
        t.addList("Hello world");
        for (String str : t) {                 // 4
            System.out.print(str + " ");
        }
    }

    public Iterator<T> iterator() {
        return list.iterator();
    }

}
Explanation
Для реализации интерфейса Iterator требуется реализовать такие методы как hasNext(), next(), remove(), поэтому произойдет ошибка компиляции в строке 1. В for-each можно использовать массивы, коллекции и классы реализующие интерфейс Iterable, поэтому произойдет ошибка компиляции в строке 4. Для успешного выполнения кода нужно заменить интерфейс Iterator на Iterable.

Следи за CodeGalaxy

Мобильное приложение Beta

Get it on Google Play
Обратная Связь
Продолжайте изучать
тесты по Java
Cosmo
Зарегистрируйся сейчас
или Подпишись на будущие тесты