Vai al contenuto

Generics Java

Da Wikipedia, l'enciclopedia libera.

Il JDK 1.5 ha introdotto alcune interessanti estensioni al linguaggio Java. Una di questa è l'introduzione dei generics o tipi generici. I generics permettono di definire delle astrazioni sui tipi di dati definiti nel linguaggio. L'esempio più comune del loro utilizzo è nella definizione/uso dei, cosiddetti, contenitori. Prima dell'avvento del JDK 1.5 per poter gestire in modo trasparente tipi di dati differenti si doveva ricorrere al fatto che in Java ogni classe deriva in modo implicito dalla classe Object; per esempio se si doveva implementare una lista concatenata il codice era seguente:

List myIntList = new LinkedList();
myIntList.add(new Integer(0));

e invece per recuperare l'elemento appena inserito si doveva scrivere

Integer x = (Integer) myIntList.iterator().next();

Si noti il cast a Integer necessario poiché myIntList in realtà lavora su oggetti Object. Dall'introduzione del JDK 1.5 invece è possibile utilizzare un codice come il seguente:

List<Integer> myIntList = new LinkedList<Integer>();
myIntList.add(new Integer(0));

dove viene esplicitamente espresso che la lista myIntList lavorerà solo su oggetti di tipo Integer. Per recuperare l'elemento appena inserito il codice è il seguente:

Integer x = myIntList.iterator().next();

Si noti che ora il cast non è più necessario visto che la lista è di interi.