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 :

Création d'objets et boucles


Sujet :

Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 151
    Points : 83
    Points
    83
    Par défaut Création d'objets et boucles
    Bonjour,
    J'ai 3 boucles imbriquées dans lesquels je crée des objets. La première boucle me crée des objets O1, la seconde me crée des objets O2 que je stocke dans un vecteur de l'objet O1 courant et la troisième me crée des objets O3 que je stocke dans un vecteur de O2 courant.
    J'ai donc au final un vecteur de O1 avec, pour chaque objets O1, j'ai l'ensemble de tous mes objets.
    Problème, mes objets sont détruits à chaque fin d'itération..
    J'ai pourtant déclaré mes objets au dessus des boucles et je fais un new pour chaque objet. Mais ces objets restent locales..
    Comment programmer en dynamique sous JAVA ?
    Merci d'avance.

  2. #2
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    L'idéal serait que tu nous montres le code que tu as, car à priori, il n'y a pas de raison que tes objets soient effacés de la liste de O1.

    Je ne suis pas sûr que le terme "programmer en dynamique" existe

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 151
    Points : 83
    Points
    83
    Par défaut
    Je ne suis pas sûr que le terme "programmer en dynamique" existe
    C'est bien ce qu'il me semblait

    Bon voila mon code, c'est du traitement XML, je crée des objets pour chaque nœud XML.

    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    	public Vector<Mode> readFonctionnalitiesFile(String type) throws IncorectTypeXmlIOException{
    		Vector<Mode> modes = new Vector<Mode>();
    		boolean find = false;
    		// Declare objects to not reallocate in for 
    		Mode mode;		
    		NodeList mode_nodes;
    		Element mode_node;
    		String st_mode_name;
    		boolean b_mode_visible; 
     
    		Fonctionality fct;
    		NodeList fct_nodes;
    		Element fct_node;
    		String st_fct_name;
    		String st_fct_descr;
    		String st_fct_icon;
     
    		Action action;
    		NodeList actions_nodes;
    		Element action_node;
    		String st_action_type;
    		String st_action_cmd;
    		String st_action_dest;
     
    		Element root = m_xmlDocument.getDocumentElement();
    		NodeList type_nodes = root.getElementsByTagName("type");
     
    		// Search the type which name is "type"
    		Element type_node = null;
    		int i = 0;
    		String st_type_name;
    		do{
    			type_node = (Element)type_nodes.item(i);
    			st_type_name = type_node.getAttribute("name");
    			if(st_type_name.equals(type)){
    				find = true;
    			}
    			++i;
    		}while(!find && i < type_nodes.getLength());
     
    		if(find){
    			// Get mode nodes
    			mode_nodes = type_node.getElementsByTagName("mode");
    			for(int index = 0; index < mode_nodes.getLength(); ++index){
    				mode_node = (Element)mode_nodes.item(index);
    				st_mode_name = mode_node.getAttribute("name"); 
    				if(mode_node.getAttribute("visible").equals("true")){
    					b_mode_visible = true;
    				}else{
    					b_mode_visible = false;
    				}
     
    				// Create a Mode object
    				mode = new Mode(st_mode_name, b_mode_visible);
     
    				// Get fonctionality nodes
    				fct_nodes = mode_node.getElementsByTagName("fonctionnality");
    				for(int index_fct = 0; index_fct < fct_nodes.getLength(); ++index_fct){	
    					fct_node = (Element) fct_nodes.item(index_fct);
    					st_fct_name = fct_node.getAttribute("name");
    					st_fct_descr = fct_node.getAttribute("description");
    					if(fct_node.hasAttribute("icon")){
    						st_fct_icon = fct_node.getAttribute("icon");
    						fct = new Fonctionality(st_fct_name, st_fct_descr, st_fct_icon);
    					}else{
    						fct = new Fonctionality(st_fct_name, st_fct_descr);
    					}
    					// Create a Fonctionality object
    					fct = new Fonctionality(st_fct_name, st_fct_descr);
    					// Get action nodes
    					actions_nodes = fct_node.getElementsByTagName("action");			
    					for(int index_action = 0; index_action < actions_nodes.getLength(); ++index_action){
    						action_node = (Element)actions_nodes.item(index_action);
    						st_action_type = action_node.getAttribute("type");
    						st_action_cmd = action_node.getAttribute("command");
    						if(action_node.hasAttribute("destination")){
    							st_action_dest = action_node.getAttribute("destination");
    							action = new Action(st_action_type, st_action_cmd, st_action_dest);
    						}else{
    							action = new Action(st_action_type, st_action_cmd);
    						}
    						fct.addActions(action);
    					}
    					// Add the current fonctionality to the current mode
    					mode.addFonctionality(fct);
    				}				
    				modes.add(mode);
    			}
    		}
    		else{
    			throw new IncorectTypeXmlIOException();
    		}
     
    		return modes;		
    	}

  4. #4
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 283
    Points : 380
    Points
    380
    Par défaut
    hmmm les gros blocs comme je les aime !

    Et bien j'ai beau lire et relire ce code, je n'y vois aucune réelle faute. Tout devrait fonctionner ou jeter une exception si le document n'a pas la balise "type" que tu cherche.

    Tes objets ne sont d'ailleurs pas supprimés car tu les stocke dans ton Vector donc ils sont toujours référencés (dans le vector uniquement une fois sorti de la méthode).

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 151
    Points : 83
    Points
    83
    Par défaut
    Bon, grosse erreur de ma part. Un copier/coller s'est collé dans mon code, ce qui écrasait mon vecteur.
    Désolé pour la perte de temps

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

Discussions similaires

  1. Création d'objets dans une boucle
    Par Ade14 dans le forum Débuter
    Réponses: 21
    Dernier message: 28/08/2014, 09h50
  2. boucle infinie dans la création d'objet en C#
    Par encoremoi21258 dans le forum C#
    Réponses: 1
    Dernier message: 21/04/2014, 15h25
  3. Création d'objets dans une boucle for
    Par urban_p dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 02/06/2008, 10h34
  4. [PowerBuilder] Création d'objets dynamiques
    Par Béné123456789 dans le forum Powerbuilder
    Réponses: 3
    Dernier message: 12/06/2006, 00h33
  5. [FLASH MX2004] Création d'objet dynamiquement
    Par noarno dans le forum Flash
    Réponses: 3
    Dernier message: 15/12/2004, 11h00

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