Génériques

Java a introduit un autre type de polymorphisme depuis Java 1.5, dit paramétrique, qui permet de typer et contraindre les classes. Ces contraintes s’expriment au moyen d’une notation entre chevrons.

En reprenant l’exemple des animaux, et en supposant que l’application concerne un zoo, la modélisation inclura des enclos regroupant différents animaux. Dans ces enclos, il s’agit d’absolument éviter de mélanger des carnivores et des herbivores. Les génériques permettent de mettre en place une telle sécurité.

Exemple


public class Enclos<T extends Animal> {  
    private T[] animaux; 
    ...   
    public ajouter(T animal) { 
          ... 
    }  
}
 

L’exemple précédent définit une notion d’enclos pour toutes sortes d’animaux, grâce à la notation entre chevrons (< >). Cette notation définit un type particulier, avec l’alias T qui sera utilisé pour tous les objets étendant la classe Animal. Cet alias peut alors être utilisé à l’intérieur de la classe en substitution du type.

La classe Enclos peut ensuite être instanciée avec l’opérateur diamant depuis Java 1.7 comme ceci :

Exemple d’utilisation avec Java 1.9

Enclos<Tigre> enclosDesTrigres = new Enclos<>();
 

ou dans Java 1.5 comme cela :

Exemple...

couv_9JAV.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Quelques autres principes utiles
Suivant
Collections