Blog

Java : Généricité

La généricité permet de définir des classes, et des méthodes paramétrées par une ou plusieurs classes.

On peut définir une méthode générique dans une classe de la façon suivante :

     
public class X {
   public <T>  void affiche(Paire<T> p){
      System.out.println(p);
   }
   
   public <T> T choix(T a, T b){
      return (int)(Math.random()*2)==1?a:b;
   }
   
   public static void main(String []a){ 
      Paire<String> ps = new  Paire<String>("un", "deux");   
      Paire<Integer> pi = new Paire<Integer>(1, 2);
      X x = new X(); 
      x.affiche(ps);
      x.affiche(pi);
      Number n = x.choix(new Integer(2), new Double(3.14159));
   }
}

Dans la dernière ligne, le compilateur fait une inférence de type, et calcule la première super classe commune aux deux classes Integer et Double, soit Number.