я часто сталкиваюсь с ситуациями, как:разница между списком типов объектов и списком объектов, простирающегося типом
List<Fooable> fooList;
против
List<? extends Fooable> fooList;
В чем разница между этими двумя? Или есть имя для этой/ранее существовавшей ссылки, где описано это различие? Я не могу использовать эту концепцию Google, потому что я не знаю, как она называется, или как иначе вы ее описали.
Имеет ли значение, является ли Fooable интерфейсом? Конкретный класс? Абстрактный класс? Это относится только к классам, которые расширяют и/или реализуют что-то?
Я считаю, что на это отвечает. http://stackoverflow.com/questions/4343202/difference-between-super-t-and-extends-t-in-java –
Или здесь http : //programmers.stackexchange.com/questions/303584/what-is-the-difference-between-extends-foo-and-foo –
Что касается имени этой конструкции, она называется «верхним ограниченным шаблоном», см. Пример https://docs.oracle.com/javase/tu torial/java/generics/upperBounded.html – user140547