Diferença entre o parâmetro Tipo limitado e curinga superior limitado
Eu sei que havia uma pergunta semelhante já postada, embora eu ache que a minha seja um pouco diferente ...
Suponha que você tenha dois 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) {
// ...
}
Até onde eu sei, ambos os métodos aceitam argumentos, que sãoList
do tipoNumber
ouList
dosubtipo doNumber
.
Mas qual é a diferença entre os dois métodos, afinal?