🛢️Parcours Fioul GroupéJava · Chapitre 14
Accueil › Java › Chapitre 14
Chapitre 14 / 22

Les génériques

Écrire du code réutilisable et sûr en type : les génériques paramètrent classes et méthodes par un type, garantis à la compilation.

1 Notion

Le problème résolu

Sans génériques, une List contiendrait des Object : on perdrait le type et il faudrait caster (risque d'erreur à l'exécution). List<Commande> garantit que seuls des Commande y entrent — vérifié à la compilation.

List<Commande> cs = new ArrayList<>();
cs.add(new Commande(1500));
Commande c = cs.get(0);   // pas de cast, type sûr
2 Notion

Classe et méthode génériques

// une classe paramétrée par un type T
public class Boite<T> {
  private T contenu;
  public void set(T v) { this.contenu = v; }
  public T get() { return contenu; }
}

// méthode générique bornée : T doit être Comparable
static <T extends Comparable<T>> T max(List<T> l) { ... }
Wildcards — List<? extends Personne> accepte une liste de n'importe quel sous-type de Personne (en lecture).
🛢️ Sur le projet Fioul Groupé

Un Repository<T> générique (méthodes save, findById) fonctionne pour Campagne, Participant, Commande sans dupliquer le code. C'est précisément l'idée derrière JpaRepository<Campagne, Long> du parcours Spring : les génériques rendent le pattern repository possible.

À retenir
← Chapitre 13