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

Langage Java Discussion :

Implementation méthode avec generics


Sujet :

Langage Java

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Implementation méthode avec generics
    Voila mon pb j'ai une interface XInter1 avec une méthode du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void <T extends ClasseA> setC(T o) ;
    J'ai une classe ClasseB qui est une sous classe de ClasseA et je cherche à implémenter une classe MaClasse de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void setC(ClasseB o);
    Eclipse crie que je n'ai pas implémenter la méthode setC ... Comment faire pour implementer une telle méthode uniquement pour une sous classe (ClasseB) de ClasseA ?

    Je suis succeptible d'avoir une autre classe MaClasse1 qui aura à implémenter setC uniquement pour une ClasseC sous classe de ClasseA.

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour,
    Tut d'abord, remplaces:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void <T extends ClasseA> setC(T o) ;
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public <T extends ClasseA> void setC(T o) ;
    Et ensuite, c'est normal que ce ne soit pas accepté par le compilateur:
    Dans l'interface, tu dis que la méthode setC accèpte n'importe quel desecendant de ClasseA, or dans l'implémentation tu limites ça à ClasseB.

    Exemple: soit ClassC extends ClassA et ClassB extends ClassA.

    dans l'interface, setC est censé accpeter ClassB et ClassC, or l'implémenttaion que tu donnes n'accèpte pas ClassC D'où l'erreur.

    Comme solution, tu peux pramétrer plutôt l'interface au lieu de la méthode, ce qui donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public interface XInter1<T extends ClasseA> {
      void setC(T o) ;
    }
    et ensuite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class MaClasse implements XInter<ClasseB> {
      public  void setC(ClasseB o) ;
    }
    Bonne chance.

Discussions similaires

  1. Problème avec generic et appel de méthode
    Par NiamorH dans le forum C#
    Réponses: 10
    Dernier message: 31/10/2008, 19h52
  2. méthodes avec nombres d'arguments variable
    Par spynux dans le forum Langage
    Réponses: 2
    Dernier message: 26/05/2006, 13h51
  3. Méthode avec argument objet de la même classe
    Par Black-Ghost dans le forum C++
    Réponses: 5
    Dernier message: 30/01/2006, 10h01
  4. Réponses: 11
    Dernier message: 29/04/2005, 19h45
  5. Réponses: 5
    Dernier message: 22/04/2005, 11h38

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