Generics Java: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Riga 129:
*tipo '''controvariante''' ''List<super T>'': cattura le proprietà dei ''List<X>'' in cui ''X'' è esteso da ''T''; si usa per specificare tipi che possono essere solo scritti.
*tipo '''bivariante''' ''List<?>'': cattura tutti i ''List<T>'' senza distinzioni; si usa per specificare i tipi che ''non'' consentono né letture né scritture.
 
== Definizione di una classe generica ==
Ecco un esempio di classe generics
<source lang="java">
public class Gen<X,Y> {
 
private final X var1;
private final Y var2;
 
public Entry(X x,Y y) {
var1 = x;
var2 = y;
}
 
public X getVar1() {
return var1;
}
 
public Y getVar2() {
return var2;
}
public String toString() {
return "(" + var1 + ", " + var2 + ")";
}
}
</source>
 
Questa classe non serve a nulla da sola, deve essere quindi utilizzata un'altra struttura, come nell'esempio successivo:
 
<source lang="java">
 
Gen<String, String> esempio1 = new Gen<String, String>("esempio", "uno");
Gen<String, Integer> esempio2 = new Entry<String, Integer>("esempio", 2);
 
System.out.println("primo esempio: " + esempio1);
System.out.println("secondo esempio: " + esempio2);
 
</source>