<? супер E> и <? расширяет E> для списка
Имея следующую простую структуру классов: I '
class A {
}
class B extends A {
}
class C extends B {
}
m создаем ArrayList для хранения объектов ранее созданных классов:
List list1 = new ArrayList<a>();
List list2 = new ArrayList();
List list3 = new ArrayList();
List list4 = new ArrayList</a><a>();
List list5 = new ArrayList();
List list6 = new ArrayList();
</a>
добавление объекта класса A, B, C в список4
добавление объекта классов B и C в список5
добавление объекта класса C в список list6. Остальные попытки дают ошибки компилятора, такие как мы:
Метод add (capture # 1-of? Extends A) в типе List не применим для аргументов (A)