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>
|