Generics <E> en Java

Rupam Yadav 12 octobre 2023
Generics <E> en Java

Les Generics ont été ajoutés dans Java 5 pour améliorer l’abstraction et fournir un moyen d’utiliser une méthode, une interface ou une classe unique avec différents objets ou types de données.

Il existe une convention de dénomination commune liée aux Generics comme T représente le Type et V est utilisé pour la Valeur. Nous examinons E, un autre nom de paramètre de type utilisé dans Generics qui signifie généralement Element dans cet article.

Utilisation de Generics <E> en Java pour créer une nouvelle liste

La meilleure façon de comprendre Generics est d’utiliser une collection car, sans Generics, les collections comme les listes nécessitaient beaucoup de code à écrire. Pourtant, nous pouvons créer une List ou toute autre collection avec très peu de code après avoir introduit Generics.

Le nom générique <E> signifie Element et est couramment utilisé dans le Java Collections Framework. Dans l’exemple ci-dessous, nous créons une méthode statique appelée newListWithElements() qui prend un paramètre générique de type E avec l’opérateur d’arguments variables ... appelé listElements.

La méthode newListWithElements() retourne une List de type <E> qui est un paramètre de type générique. Nous utilisons également un paramètre de type avant le type de retour et après static ou tout modificateur d’accès utilisant une méthode générique.

A l’intérieur de la fonction, on crée une variable int listElementsSize et on l’initialise avec la longueur du paramètre listElements. S’il est null, on l’initialise avec zéro.

Ensuite on crée un constructeur ArrayList et on passe listElementsSize qui est la taille de la List, qui retourne une List qui est de type <E>.

Maintenant, nous collectons tous les éléments listElements et créons une nouvelle liste en utilisant Collections.addAll() qui ajoute tous les éléments à la nouvelle liste listOfElements. Nous avons une nouvelle liste que nous retournons de la méthode.

Dans la fonction main(), nous appelons trois fois newListWithElement() avec des types comme String, Integer et Boolean. Les Generics permettent de créer une liste de plusieurs types d’objets avec une seule méthode.

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class JavaEGenerics {
  public static void main(String[] args) {
    List<String> newStringList = newListWithElements("element1", "element2", "element3");
    List<Integer> newIntList = newListWithElements(11, 12, 13);
    List<Boolean> newBooleanList = newListWithElements(true, false);

    System.out.println(newStringList);
    System.out.println(newIntList);
    System.out.println(newBooleanList);
  }

  static <E> List<E> newListWithElements(E... listElements) {
    int listElementsSize = 0;

    if (listElements != null)
      listElementsSize = listElements.length;

    List<E> listOfElements = new ArrayList<>(listElementsSize);

    if (listElements != null)
      Collections.addAll(listOfElements, listElements);

    return listOfElements;
  }
}

Production :

[element1, element2, element3]
[11, 12, 13]
[true, false]
Auteur: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn