[Java 5.0] Tipos Generic

2766 vistas

Los tipos Generic han sido esperados con gran espectación por la comunidad Java y ahora forman parte de J2SE 5.0. Uno de los primeros lugares para ver los tipos Generic en acción es en el API Collections. Este API proporciona una funcionalidad común como LinkedLists, ArrayLists y HashMaps que pueden usarse con varios tipos Java. El siguiente ejemplo usa las librerías 1.4.2:



java
  1. ArrayList list = new ArrayList();
  2.   list.add(0, new Integer(42));
  3.   int total = ((Integer)list.get(0)).intValue();



El Cast a Integer en la última línea es un ejemplo de casteo que los tipos Generic intentan evitar. El asunto es que el API Collection de la versión 1.4.2 usa la clase Object para almacenar los objetos Collection, lo que significa que puede llegar a tomar mal el tipo casteado en tiempo de compilación. Esto provocarÃa una excepción en ejecución de ClassCastException.

El mismo ejemplo pero usando tipos Generic serÃa:



java
  1. ArrayList<Integer> list =  new ArrayList<Integer>();
  2.   list.add(0, new Integer(42));
  3.   int total = list.get(0).intValue();