В Java класс Collections содержит следующий метод:
public static <T extends Object & Comparable<? super T>> T min(Collection<? extends T> c)
Его подпись хорошо известна своим расширенным использованием дженериков, настолько, что упоминается в Java в двух словах и в официальном Учебном пособии Sun Generics.
Однако я не смог найти убедительного ответа на следующий вопрос:
Почему формальный параметр типа Collection<? extends T>
, скорее
чем Collection<T>
? Какая дополнительная польза?