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]
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