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

 
 

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.
 
 

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

Laisser un commentaire

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