Я знаю, что уже был опубликован аналогичный вопрос, хотя я думаю, что у меня несколько другое...
Предположим, что у вас есть два метода:
// 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
.
Но какая разница между этими двумя методами в конце концов?