Разница между параметром ограниченного типа и подстановочным знаком верхней границы

Я знаю, что подобный вопрос уже был опубликован, хотя я думаю, что мой немного отличается ...

Предположим, у вас есть два метода:

// Bounded type parameter
private static <T extends Number> void processList(List<T> someList) {

}

// Upper bound wildcard
private static void processList2(List<? extends Number> someList) {
    // ...
}

Насколько я знаю, оба метода принимают аргументы, которые являютсяList типаNumber или жеList изподтип изNumber.

Но в чем разница между этими двумя методами?

Ответы на вопрос(5)

Ваш ответ на вопрос