Чому компілятор не пропускає якщо написати
ListIterator< H> listIterator = sourceList.listIterator();
Чому потрібно двічі писати: ? extends H?
Там де ? super H зрозуміло, про це писали у лекції, але ж тут можна виконати upcast