Tipos parametrizados

dedoz
10 de Julio del 2005
Tengo una duda del siguiente codigo

public static void reverse(List<?> list) { rev(list);}
private static <T> void rev(List<T> list) {
List<T> tmp = new ArrayList<T>(list);
for (int i = 0; i < list.size(); i++) {
list.set(i, tmp.get(list.size() - i - 1));
}
}

Si bien, entiendo los tipos parametrizados, la definicion private static <T> void rev(List<T> list) del metodo rev tiene un tipo parametrizado detras del void. Eso es lo que no entiendo. Es como decir, el metodo entrega <T> y void (nada) ? ... si alguien me pudiera ayudar.

El codigo lo obtube del Java Language Specification
Third Edition exactamente de la pagina http://java.sun.com/docs/books/jls/third_edition/html/conversions.html.
Gracias de antemano.
Resumen de la duda : No se porque aparece <T> antes de void.


Pedro
10 de Julio del 2005
Esta <T> indica que el método está paremetrizado por la clase T... es como si avisaras al compilador dondo ponga T lo substituya por la clase que toca...nosesimesplico