PDA

View Full Version : [JAVA] Delucidazioni sui generics


Nukles
02-07-2009, 20:48
Ciao a tutti!

Sono un newbie di Java e in questi giorni sto cercando di capire bene i Generics... e ho trovato leggermente ostico capire i metodi con la seguente segnatura:

(nell'esempio ho un metodo che riceve una coppia di elementi di tipo generico T, e ne scambia gli elementi)


static <T> void scambiaElementi(Coppia<T> c)


Non riesco a capire proprio l'utilità di <T> prima della dichiarazione del tipo di metodo... ovviamente non compila se lo ometto, ma se non riesco a capirne l'utilità, non saprò nemmeno quando dovrò usarlo e quando no :)

Qualcuno saprebbe aiutarmi? Thx!

RaouL_BennetH
02-07-2009, 22:08
Ciao :)

Io ho capito un bel pò cose da questo link:

http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html

Spero ti sia utile.

marius84
03-07-2009, 08:32
è una variabile di tipo, devono esser dichiarate tra parentesi angolari dopo eventuali modificatori e prima del tipo ritornato, quando il metodo è invocato il compilatore inferisce alle variabili T dei parametri o del corpo del metodo il tipo specifico assunto dalla variabile di tipo <T>..
non puoi passargli nessun tipo primitivo, se vuoi passare int, double ecc devi usare le classi: Integer, Double ecc che corrispondono ai tipi primitivi...

ciao e buon lavoro ;)

PGI-Bis
03-07-2009, 12:45
Qui trovi le mitiche Java Generics FAQ

http://www.angelikalanger.com/GenericsFAQ/JavaGenericsFAQ.html

La tua <T> indica che il metodo è generico. Il metodo generico è come il tipo generico:

public class Bingo<T> { ... } //classe generica

public <K> void metodo(K arg) { ... } //metodo generico

Nella classe generica la <T> va dopo il nome, nel metodo generico la <T> va prima del tipo restituito. Per il resto funzionano allo stesso modo.