Java – Génériques

Publicités

Ce serait bien si nous pouvions écrire une méthode de tri unique qui pourrait trier les éléments dans un tableau Integer, un tableau String , ou un tableau de tout type qui prend en charge l’ordre.

Les méthodes génériques Java et les classes génériques permettent aux programmeurs de spécifier, avec une seule déclaration de méthode, un ensemble de méthodes associées, ou avec une seule déclaration de classe, un ensemble des types apparentés, respectivement.

Les génériques fournissent également une sécurité de type au moment de la compilation qui permet aux programmeurs d’attraper les types non valides au moment de la compilation.

En utilisant le concept Java Generic, nous pourrions écrire une méthode générique pour trier un tableau d’objets, puis invoquez la méthode générique avec les tableaux Integer, les tableaux Double, les tableaux de chaînes et ainsi de suite, pour trier les éléments du tableau.

Méthodes génériques

Vous pouvez écrire une seule déclaration de méthode générique qui peut être ca rempli d’arguments de différents types. En fonction des types d’arguments passés à la méthode générique, le compilateur gère chaque appel de méthode de manière appropriée. Voici les règles pour définir les méthodes génériques –

  • Toutes les déclarations de méthode générique ont une section de paramètre de type délimitée par des crochets (< et >) qui précède le type de retour de la méthode (< E > dans l’exemple suivant ).

  • Chaque section de paramètre de type contient un ou plusieurs paramètres de type séparés par des virgules. Un paramètre de type, également appelé variable de type, est un identifiant qui spécifie un nom de type générique .

  • Les paramètres de type peuvent être utilisés pour déclarer le type de retour et agir comme des espaces réservés pour les types d’arguments passés à la méthode générique, qui sont appelés arguments de type réels.

  • Le corps d’une méthode générique est déclaré comme celui de toute autre méthode. Notez que les paramètres de type ne peuvent représenter que des types de référence, pas des types primitifs (comme int, double et char).

Exemple

L’exemple suivant illustre comment nous peut imprimer un tableau de type différent en utilisant une seule méthode générique –

Cela produira le résultat suivant –

Sortie

Array integerArray contains:1 2 3 4 5 Array doubleArray contains:1.1 2.2 3.3 4.4 Array characterArray contains:H E L L O

Paramètres de type borné

Il peut arriver que vous souhaitiez restreindre les types de types autorisés à être transmis à un paramètre de type. Par exemple, une méthode qui opère sur des nombres peut ne veulent accepter que des instances de Number ou de ses sous-classes. Voici à quoi servent les paramètres de type borné.

Pour déclarer un paramètre de type borné, listez le nom du paramètre de type, suivi du mot-clé extend, suivi de sa borne supérieure.

Exemple

L’exemple suivant illustre comment étend est utilisé dans un sens général pour signifier soit «étend» (comme dans les classes) soit «implémente» (comme dans les interfaces) . Cet exemple est une méthode générique pour renvoyer le plus grand des trois objets comparables –

Cela produira le résultat suivant –

Sortie

Max of 3, 4 and 5 is 5Max of 6.6,8.8 and 7.7 is 8.8Max of pear, apple and orange is pear

Classes génériques

Une déclaration de classe générique ressemble à une déclaration de classe non générique, sauf que le nom de la classe est suivi d’une section de paramètre de type.

Comme avec générique méthodes, la section de paramètre de type d’une classe générique peut avoir un ou plusieurs paramètres de type séparés par des virgules. Ces classes sont appelées classes paramétrées ou types paramétrés car elles acceptent un ou plusieurs paramètres.

Exemple

L’exemple suivant illustre comment nous pouvons définir une classe générique –

Cela produira le résultat suivant –

Sortie

Integer Value :10String Value :Hello World
Annonces

Leave a Reply

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *