Java Avancé

Méthode générique | Java

Les méthodes génériques sont celles qui sont écrites avec une seule déclaration et qui peuvent être appelées avec des arguments de différents types.

En fonction des types d’arguments passés à la méthode générique, le compilateur gère chaque appel de méthode de manière appropriée. Voici les règles pour définir les méthodes génériques:

  • Les méthodes génériques ont un type paramétré(qui représente un paramètre de type générique) avant le type de retour de la déclaration de méthode
  • Les méthodes génériques peuvent avoir différents types paramétrés séparés par des virgules dans la signature de méthode.
  • Le corps d’une méthode générique est comme une méthode normale

 
[wx_adsense]  

Type paramétré

Les conventions de dénomination de types paramétrés sont importantes pour apprendre la généricité en Java. Les types paramétrés courants sont les suivants:

  • T – Type
  • E – Element
  • K – Key
  • N – Number
  • V – Value

 

Exemple 1: Méthode générique en Java
public static <T> T addTo(T e, Collection<T> c){
    c.add(e);
    return e;
}

Cette méthode spécifie un type T qui est utilisé à la fois comme type paramétré pour le paramètre d’élément et le type générique de collection. Remarquez comment il est désormais possible d’ajouter des éléments à la collection.

Alors, comment le compilateur connaît-il le type T?

La réponse est que le compilateur déduit cela de votre utilisation de la méthode. Par exemple:

String str = "WayToLearnX";
List<String> liste = new ArrayList<String>();

String e = addTo(str, liste);
Integer i = new Integer(25);
List<Integer> c = new ArrayList<Integer>();

Integer e = addTo(i, c);

Remarquez comment nous pouvons appeler la méthode addTo() en utilisant à la fois le type String et Integer et leurs collections correspondantes. Le compilateur connait le type du paramètre T et le paramètre de collection <T>, que le type T doit être pris de ces paramètres au moment de l’appel.
 
[wx_adsense]  

Exemple 2: Méthode générique en Java

L’exemple suivant montre comment nous pouvons afficher un tableau de type différent en utilisant une seule méthode générique:

public class Main {
   // méthode générique
   public static <E> void display(E[] tab) {
      for(E e : tab) {
         System.out.printf("%s ", e);
      }
      System.out.println();
   }

   public static void main(String args[]) {

      Integer[] i = {1, 2, 3};
      System.out.println("Tableau des entiers:");
      display(i);   // passer un tableau entier

      Character[] c = {'A', 'B', 'C'};
      System.out.println("\nTableau des caractères:");
      display(c);   // passer un tableau de caractères
   }
}

 
Sortie:

Tableau des entiers:
1 2 3 

Tableau des caractères:
A B C
qcm-java-types-generiques

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *