IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

T extends E : Java et les génériques dans l'héritage


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Par défaut T extends E : Java et les génériques dans l'héritage
    Bonjour à tous,

    Une petite question sur laquelle je bloque.

    J'ai créé un type PersoIterator<E> :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    public interface PersoIterator<E> extends Iterator<E> {
      ...
    J'ai une classe qui implémente cette interface :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    public class SortedPersoIterator<E> implements PersoIterator<E> {
      ...
    Dans cette implémentation spécifique, j'ai aussi besoin que E soit Comparable mais je ne trouve plus la bonne syntaxe pour le dire...

    Quelqu'un sait ?

    Merci d'avance
    th.
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il suffit d'utiliser extends sur le type paramétré E sur la déclaration de la classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class SortedPersoIterator<E extends Comparable<E>> implements PersoIterator<E> {

    Dans ce contexte, le mot clef extends signifie que le type paramétré E devra correspondre au type indiqué.
    Si c'est une classe, E devra être une classe fille.
    Si c'est une interface, E devra être une classe qui implémente cette interface.


    A noter que tu peux même spécifier plusieurs interfaces en plus de la classe/interface initiale, en utilisant des "&" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class SortedPersoIterator<E extends Comparable<E> & Serializable> implements PersoIterator<E> {
    Ici E devra à la fois être Comparable et Serializable


    a++

  3. #3
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Par défaut
    Ah ok, tout simplement. Je faisais le code suivant, qui ne compile pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class SortedPersoIterator<T extends Comparable<E>> implements PersoIterator<E> {
    Merci
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  4. #4
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Par défaut
    Au passage c'était pour écrire ça :
    http://blog.developpez.com/todaystip.../le-multirator
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/05/2015, 15h40
  2. Java et les Génériques
    Par didate dans le forum Général Java
    Réponses: 4
    Dernier message: 21/08/2013, 12h14
  3. Réponses: 5
    Dernier message: 05/02/2009, 11h50
  4. Réponses: 1
    Dernier message: 30/07/2008, 23h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo