estoy jugando con Genérica y matrices, parece que el siguiente código compila bien,Matriz de lista genérica
ArrayList<Key> a = new ArrayList<Key>();
Pero el compilador se queja de éste,
ArrayList<Key>[] a = new ArrayList<Key>[10];
Mediante la lectura de su mensaje en stackoverflow , Entiendo que esto se deba a Type Erasure y puedo solucionarlo usando,
ArrayList<Key>[] a = (ArrayList<Key> []) new ArrayList[10];
o una lista de lista
ArrayList<ArrayList<Key>> b = new ArrayList<ArrayList<Key>>();
Pero no puedo entender el motivo detrás de la escena. Especialmente, por qué el segundo es ilegal dado que el primero está perfectamente bien. Y por qué el compilador no se queja de la lista de la lista.
http://stackoverflow.com/questions/217065/cannot-create-an-array-of-linkedlists-in-java – tcb