Ci-dessous un exemple de la généricité dans java avec wildcard :
package avecgenericite;
public class GetValeur<T> {
T valeur;
public GetValeur(T param) {
valeur = param;
}
public T lire() {
return valeur;
}
}
package avecgenericite;
public class AppelGetValeur {
// La méthode suivante utilise un wildcard
public void affich_tout_ecran(GetValeur<?> o) {
System.out.println(o.lire().toString());
}
// La méthode suivante utilise un Bounded Wildcard
public void affich_ss_objet_ecran(GetValeur<? extends Object> o) {
System.out.println(o.lire());
}
// Dans le cas de la méthode suivante, tous les sous types String sont possibles
public void affich_String_ecran(GetValeur<String> o) {
System.out.println(o.lire());
}
public AppelGetValeurHerit() {
}
public static void main(String args[]) {
GetValeur<String> STR = new GetValeur<String>("TEST");
GetValeur<Object> OBJ = new GetValeur<Object>("Objet");
AppelGetValeurHerit App = new AppelGetValeurHerit();
App.affich_String_ecran(STR);
System.out.println("Exemple Joker : ");
App.affich_tout_ecran(STR);
App.affich_tout_ecran(OBJ);
System.out.println("Exemple sous type : ");
App.affich_ss_objet_ecran(STR);
App.affich_ss_objet_ecran(OBJ);
}
}