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

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
Зареєструйся Зараз
або Підпишись на майбутні тести