De colecciones sin tipo a tipos genéricos
Sustituye las colecciones sin tipo y los casts de recuperación por seguridad de tipos en tiempo de compilación.
List names = new ArrayList();
names.add("Duke");
String name = (String) names.get(0);
List<String> names = new ArrayList();
names.add("Duke");
String name = names.get(0);
Seguridad en tiempo de compilación
Los tipos de elemento inválidos fallan durante la compilación, no en tiempo de ejecución.
Sin casts de recuperación
Los valores conservan su tipo de elemento declarado.
APIs autodocumentadas
Las declaraciones de colecciones indican exactamente qué contienen.
Los genéricos están disponibles desde JDK 5 (septiembre de 2004).
Las colecciones sin tipo aceptan cualquier tipo de objeto y posponen los errores de tipo hasta que se ejecuta un cast. Los argumentos de tipo genérico permiten que el compilador valide escrituras y lecturas, eliminen los casts, mejoren la asistencia del IDE y hagan explícitos los contratos de la API. Los tipos sin tipar deberían quedar reservados a puntos de interoperabilidad heredados cuidadosamente aislados.