La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Généricité.

Présentations similaires


Présentation au sujet: "Généricité."— Transcription de la présentation:

1 Généricité

2 Retour sur java3 Utilisation de classes génériques Collections en JAVA
ArrayList<E> Comment ça fonctionne en interne Equals Hashcode

3 Création de classe génériques
Définition, Variable de Type : T Classe générique non instanciée truc<T> Classe générique instancié truc<String> Déclaration Class truc<T> { T attribut; }

4 Sous typage Alors truc<T> Sous <T> herite de truc<T>
Sous<T> sous type de truc<T> Sous<String> sous type de truc<String>

5 attention La relation de sous-typage permet de définir quelles affectations sont bien typées. Si on avait Paire < Integer > hérite de Paire < Object > le programme suivant serait bien typé. Or il n’est clairement pas correct. class PasSousType1 { public static void main ( String [ ] args ) Paire <Integer> une Paire = new Paire <Integer>(12,45); Paire <Object> laMeme = unePaire; unePaire.setFirst(”archi”) ; }

6 Wildcards Pour compenser  wildcards Idée :
La variable type d’une classe generique hérite d’un type connu Exemple Integer hérite de Number ArrayList<Integer> n’herite pas de ArrayList<Number>

7 Wildcards (2) Une méthode
qui attend une ArrayList<Number> ne peut donc prendre une ArrayList<Integer> Or on doit savoir faire l’opération de la méthode Déclarer la méthode comme attendant ArrayList<? extends Number>

8 Contrainte sur classe paramètre
Types paramètrés contraints Idée : Je veux gérer des ensembles d’objets ayant une méthode donnée dans une interface Interface Si je declare avec un type générique Ex : truc<T> Je ne peux pas appeler la méthode sur T Il faut déclarer différemment Truc<T extends Interface>


Télécharger ppt "Généricité."

Présentations similaires


Annonces Google