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 :

pb appel méthode classe mère, StackOverflowError


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 155
    Par défaut pb appel méthode classe mère, StackOverflowError
    Bonjour à tous,

    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    public class MyJCombobox extends JComboBox{
     
        public MyJCombobox() {
            super();
        }
     
     
        @Override
        public void	addItem(Object anObject){
            ArrayList<String> array = new ArrayList<String>(this.getItemCount() + 1);
     
            for (int i = 0; i < this.getItemCount(); i++)
                array.add((String)this.getItemAt(i));
            array.add((String)anObject);
     
            Collections.sort(array);
     
            this.removeAllItems();
            for (int i = 0; i < array.size(); i++)
                ((JComboBox)this).addItem(array.get(i));
        }
    }
    j'ai donc juste defini une classe heritant de JComboBox, pour y redefinir la methode addItem, pour qu'elle ajoute un item mais en rangeant dans l'ordre alphabetique. Mais qd j'appelle cette fonction, j'ai une erreur : StachOverflowError.

    pourtant le addItem de ma classe fille appelle bien le addItem de la classe mère (j'ai fait un cast), alors je comprend pas.

    Merci à vous pour vos idées

  2. #2
    Membre confirmé Avatar de r2d2abc
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 212
    Par défaut
    Salut, déjà si tu peux mettre l'exception complete pour mieux localiser ce sera mieux, sinon désolé de te le dire mais tu as un appel récursif donc pas étonnant que cela plante.

    Remplace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
                ((JComboBox)this).addItem(array.get(i)); //-> typcast not mandatory
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                super.addItem(array.get(i));
    hope this helps...

  3. #3
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((JComboBox)this).addItem(array.get(i));
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    super.addItem(array.get(i));
    C'est de cette façon qu'on appelle la méthode d'une classe parente.
    Dans ton premier code, c'est la méthode qui s'appelle elle-même (et le cast ne change rien à ce comportement : c'est le polymorphisme des langages objet...).

    EDIT : grillé...
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 155
    Par défaut
    Citation Envoyé par CyberChouan Voir le message
    Remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((JComboBox)this).addItem(array.get(i));
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    super.addItem(array.get(i));
    C'est de cette façon qu'on appelle la méthode d'une classe parente.
    Dans ton premier code, c'est la méthode qui s'appelle elle-même (et le cast ne change rien à ce comportement : c'est le polymorphisme des langages objet...).

    EDIT : grillé...
    Bon merci à tout les deux pour vos réponses. Je vais essayer ça tout de suite.

    "EDIT : grillé..." ?? je comprend pas

  5. #5
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Citation Envoyé par _LittleFlea_ Voir le message
    "EDIT : grillé..." ?? je comprend pas
    Il veut dire que r2d2abc a repondu avant lui

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 155
    Par défaut
    Citation Envoyé par hwoarang Voir le message
    Il veut dire que r2d2abc a repondu avant lui
    ah ok

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

Discussions similaires

  1. Appel méthode classe fille, dont classe mère virtuelle
    Par Metalman dans le forum Débuter
    Réponses: 6
    Dernier message: 07/06/2013, 11h51
  2. Méthode classe mère appelle méthode surdéfini de la classe fille
    Par djrilhouse dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 21/03/2013, 20h24
  3. héritage : appel constructeur classe mère
    Par Invité dans le forum Débuter
    Réponses: 6
    Dernier message: 20/09/2011, 22h19
  4. Empêcher appel constructeur class mère
    Par T0xF0x dans le forum Débuter
    Réponses: 2
    Dernier message: 27/11/2008, 08h55
  5. [POO]Appelé une méthode d'une classe mère
    Par LE NEINDRE dans le forum Langage
    Réponses: 2
    Dernier message: 14/12/2005, 14h44

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