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 :

Pb Appel recursif d'objet.


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Points : 34
    Points
    34
    Par défaut Pb Appel recursif d'objet.
    Bonjour a tous,

    j'ai un pb de java.lang.StackOverflowError.

    j'explique mon soucis :

    j'ai un objet Instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class Instruction
    {
          Expr expr;
     
           Instruction ()
           {
               expr = new Expr();
           }
     
    }
    mon objet expr() fait new call ()
    call fait un new parametre()
    et enfin la ligne qui pose pb
    parametre() fait new expr

    j'ai besoin de cette "structure" et je souhaiterais savoir si il est posssible de faire un appel recursif d'objet sans avoir cette erreur.

    Ps : tous mes objets sont declarés de la meme facon que le code ci-dessus.

    Merci d'avance

    Sebastien

  2. #2
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    C'est normal que tu obtiennes un StackOverFlow, tu boucles indéfiniment, il te faudrait au moins mettre un compteur pour t'arréter quand tu le désires.

    C'est une manière bizarre d'instancier des objets, es-tu sùr qu'il n'y pas une autre manière de procéder.


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    C'est une manière bizarre d'instancier des objets
    c'est a dire ? je suis pas trop expert en java et Poo ...

  4. #4
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Dis nous ce que tu cherches à faire avec des bouts de code , peut-étre qu'il y a une autre manière de procéder.


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  5. #5
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    on appelle ça une boucle infinie, et pour t'en débarasser, mets un compteur (à passer dans les parametres de constructeur) comme l'a dit afrikha.
    Cependant, moi non plus je ne crois pas que ta représentation soit très bien pensée...

    bon courage.

    mavina
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    en faite je pense avoir trouvé une solution de rechange : au lieu de placer mon new Expr dans le constructeur de ma class parametre, j'ai créer une methode qui me creer un nouvelle objet Expr a la demande (a ma demande) du coup je n'ai plus cette maudite erreur ....

    tu pense que ma solution est valable ?

    Expr represente le "prototypage" d'un appel d'une fonction

    Instruction () represente la fonction qui est composé de :
    - un nom de methode
    - des parametres

    les parametres peuvent etre constitué d'appel de fonctions .....

    bref ce que je cherche a faire n'est pas tres evident a expliquer ...

Discussions similaires

  1. appel recursif de makefile
    Par yan dans le forum Systèmes de compilation
    Réponses: 3
    Dernier message: 13/01/2010, 20h48
  2. [POO] Appel d'un objet d'un formulaire d'une fenetre depuis une pop up
    Par shaun_the_sheep dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/10/2006, 11h34
  3. Appels dynamiques d'objets
    Par dederfred dans le forum Delphi
    Réponses: 8
    Dernier message: 09/10/2006, 22h21
  4. Appel recursif avec template
    Par Math75 dans le forum Langage
    Réponses: 24
    Dernier message: 13/10/2005, 11h57
  5. Appel recursif au constructeur
    Par Math75 dans le forum C++
    Réponses: 1
    Dernier message: 11/10/2005, 15h48

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