Cuando se utiliza una colección sin genéricos, la colección va a aceptar objeto, lo que significa que todo en Java (y es también va a dar objeto si se intenta obtener algo de él):
List objects = new ArrayList();
objects.add("Some Text");
objects.add(1);
objects.add(new Date());
Object object = objects.get(0); // it's a String, but the collection does not know
una vez que utilice los genéricos que restringen el tipo de datos de un collectio n puede contener:
List<String> objects = new ArrayList<String>();
objects.add("Some text");
objects.add("Another text");
String text = objects.get(0); // the collection knows it holds only String objects to the return when trying to get something is always a String
objects.add(1); //this one is going to cause a compilation error, as this collection accepts only String and not Integer objects
Así que la restricción es que se fuerza la colección usar sólo un tipo específico y no todo lo que lo haría si no había definido la firma genérica.
su información, echa un vistazo a esto: http://stackoverflow.com/questions/6165822/what-is-this-mean-in-the-arraylist-in-java/6165827#6165827 –