Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
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>
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.