Diferencia entre el parámetro de tipo acotado y el comodín de límite superior
Sé que ya se publicó una pregunta similar, aunque creo que la mía es algo diferente ...
Supongamos que tiene dos métodos:
// Bounded type parameter
private static <T extends Number> void processList(List<T> someList) {
}
// Upper bound wildcard
private static void processList2(List<? extends Number> someList) {
// ...
}
Hasta donde yo sé, ambos métodos aceptan argumentos, que sonList
de tipoNumber
oList
desubtipo deNumber
.
Pero, ¿cuál es la diferencia entre los dos métodos después de todo?