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 :

Problème return sur une méthode


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Architecte de système d’information
    Inscrit en
    Septembre 2005
    Messages
    236
    Détails du profil
    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Septembre 2005
    Messages : 236
    Par défaut Problème return sur une méthode
    Bonjour,

    j'ai un probléme avec return sur une méthode, voici le 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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    public class ChainImpl implements Ichaine {
     
     
    	private  Ichaine successor;
    	private  static String[]	 tab="val1;val2".split(";");
    	private int count;
     
    	public  ChainImpl ( int count) {
    		this.count=count;
    	}
     
     
     
     
     
    	/**
             * @param successor the successor to set
             */
    	public void setSuccessor(Ichaine  successor) {
    		this.successor = successor;
    	}
     
     
    	public BusinessResponse processRequest(Request request) {
     
    		BusinessResponse businessResponse=new BusinessResponse();
     
    		if(count<tab.length){ 
    			elt=tab[count];
    			count++;
    			successor= new ChainImpl(count);
    		}
     
     
    		if(elt!=null && !elt.equals("")){
     
    				//mes traitements
     
    			if( count<tab.length){
    				successor.processRequest(request);
    			}
    		}
    		return   businessResponse;	
     
     
    	}
     
     
    	/**
             * @return the tab
             */
    	public static String[] gettab() {
    		return tab;
    	}
     
     
    	/**
             * @param tab the tab to set
             */
    	public static void settab(String[] tab) {
    		eltUtilVSCTImpl.tab = tab;
    	}
     
     
    }
    en effet quand il arrive à l'instruction "return businessResponse;" j'ai remarqué à l'aide de débugger qu'il retourne à l'instruction "successor.processRequest(request);" je comprends pas pourquoi.

    merci

  2. #2
    Membre éprouvé Avatar de sylviadesbois
    Inscrit en
    Mars 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 84
    Par défaut
    Ta méthode n'est pas complète il me semble?
    C'est quoi elt? tu l'as déclaré où? parce que la techniquement ça devrait planter quand tu l'utilises puisque tu l'as jamais déclaré

    pourquoi tu crée une instance de classe BusinessRespons si tu fais rien avec?

    Pourquoi tu prends un Request en paramètre si tu fais rien avec?


    ensuite dans ton code si count est inférieur à la taille de tab la fonction processRequest s'appelle elle même mais ne récupère rien, c'est bizarre non?
    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
    23
    24
    25
    26
     
     
    public BusinessResponse processRequest(Request request) {
     
    		BusinessResponse businessResponse=new BusinessResponse();
     
    		if(count<tab.length){ 
    			elt=tab[count];
    			count++;
    			successor= new ChainImpl(count);
    		}
     
     
    		if(elt!=null && !elt.equals("")){
     
    				//mes traitements
     
    			if( count<tab.length){
    //tu devrais récuperer un BusinessRespons là non? pourquoi tu le récupère pas? 
    				successor.processRequest(request);
    			}
    		}
    		return   businessResponse;	
     
     
    	}

  3. #3
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Bonjour, ta méthode s'appelle elle-même, c'est donc normale que après le return de la 2è itération on revienne à successor.processRequest(request); de la 1ère itération.

  4. #4
    Membre éclairé
    Architecte de système d’information
    Inscrit en
    Septembre 2005
    Messages
    236
    Détails du profil
    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Septembre 2005
    Messages : 236
    Par défaut
    Effectivement c'est à cause de ça merci bcp

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

Discussions similaires

  1. Problème de thread sur une méthode d'une classe C++
    Par yoshi84300 dans le forum Threads & Processus
    Réponses: 5
    Dernier message: 12/03/2013, 11h23
  2. Problème d'exposant sur une méthode mathématique.
    Par ecobarito dans le forum Débuter
    Réponses: 14
    Dernier message: 29/08/2007, 20h16
  3. [ActiveX] Retour de BSTR sur une méthode externe
    Par mr.saucisse dans le forum MFC
    Réponses: 28
    Dernier message: 11/01/2006, 15h47
  4. Réponses: 3
    Dernier message: 16/04/2004, 16h51
  5. [MFC] Problème pointeur sur une classe
    Par mick74 dans le forum MFC
    Réponses: 7
    Dernier message: 14/04/2004, 14h17

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