Journal du Net Développeur >  Java >  Les generics au sein de Java

Les generics au sein de Java > 1. Syntaxe et utilisation

Précédente 2. Comparaison avec C# 2.0
A. Les classes
  1. class Fruit {
  2.   }
  3.  
  4. class Pomme extends Fruit {
  5.   }
  6.  
  7. class Orange extends Fruit {
  8.   }
B. La classe du panier
  1. public class Panier<E> {
  2.   private E element;
  3.    
  4.   public void setElement(E x) {
  5.     element = x;
  6.     }
  7.    
  8.   public E getElement() {
  9.     return element;       
  10.     }
  11.   }
C. Un exemple d'utilisation
  1. Panier<Fruit> monPanier = new Panier<Fruit>();
  2. monPanier.setElement(new Pomme());
  3. Fruit maPomme = monPanier.getElement();
D. ...avec transtypage
  1. Pomme maPomme = (Pomme) monPanier.getElement();
Les génériques permettent donc de se libérer de certaines contraintes de type lors de l'écriture de programme. Prenons par exemple le cas d'un panier pouvant contenir des fruits comme des pommes ou des oranges. Nous avons tout d'abord les classes de nos fruits [A].

Puis vient la classe de notre panier [B].

"E" marque le type que nous prenons en argument. Notre classe peut aussi bien créer que renvoyer des objets de cet type - qui n'est pas encore précisé. Cette précision n'arrive que dans le courant du code, par exemple le code [C].

Notez que getElement() ne renverra pas un objet de type Pomme, mais de type Fruit : monPanier ne peut renvoyer que des objet du type avec lequel il a été construit. S'il est nécessaire d'obtenir une Pomme, il faudra passer par transtypage [D].
Précédente Retour au sommaire Suivante 
1 | 2 | 3 | 4 | 5
 
|
Haut de page
Nos autres sites Société | Mentions légales | Contacts | Publicité | PA Emploi | Presse | Recrutement | Tous nos sites | Données personnelles
© Benchmark Group, 69/71 avenue Pierre Grenier. 92517 Boulogne Billancourt Cedex