Aller au contenu
uencoder

Generics

Les génériques permettent aux types d'être des paramètres, rendant possibles des conteneurs et algorithmes sûrs vis-à-vis des types et réutilisables, qui lient les types concrets à l'instanciation.

Objectif

Écrire du code réutilisable et sûr vis-à-vis des types, en évitant la duplication et les vérifications de types à l'exécution.

Mécanisme

Types paramétrés : List<T> fournit une List pour tout type T. Java utilise l'effacement de types (aucune information générique à l'exécution), les templates C++ génèrent du code pour les types concrets, Rust monomorphise. La covariance/contravariance contraint les relations de sous-typage.

Cas d’usage

  • Conception de bibliothèques de conteneurs
  • Réutilisation de type sûr
  • Conception d'API

Outils associés

References