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 :

Passage référence et affectation


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de NizarK
    Inscrit en
    Mars 2007
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 189
    Par défaut Passage référence et affectation
    Voilà je voudrais utiliser un objet Document DOM dans mon programme principal ....
    Ce Document est au départ NULL puis est passé en paramètre à des méthodes qui le construisent puis le modifient au fur et à mesure ...

    Le problème c'est que je voudrais garder le même objet et non pas le dupliquer à chaque fois ( économie de mémoire ) ...

    Mais j'ai vu dans ce forum et dans d'autres que il suffit que je fasse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document = builder.parse(IS);
    pour que ce ne soit plus le meme objet et ça se vérifie puisque si j'appelle l'objet dans ma méthode main() l'objet est encore NULL. y a t-il un moyen pour contourner cela ...

  2. #2
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Comprend pas tout, mais en gros, si ta variable est à null, tu n'a aucun objet derrière. Tu ne peux donc pas le construire.

  3. #3
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Il te faudrait construire ton document avant de le transmettre aux méthodes. Ensuite il ne faudrait plus jamais affecter une nouvelle instance à ta variable dans les différentes méthodes. Malheureusement, l'API JDom ne propose pas cela directement.
    Une solution élégante consisterait à empaqueter le document dans un objet de ta conception :
    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
    public InstanceDoc
    {
      private Document doc;
      private static instance = new InstanceDoc();
      private InstanceDoc()
      {}
      public static getInstance()
      {
        return instance;
      }
     
      public Document getDocument()
      {
        return doc;
      }
     
      public void setDocument( Document doc )
      {
        this.doc = doc;
      }
    }
    Tu transmet en paramètre ton objet, qui va gérer l'instance de ton document.
    Le singleton n'est peut-être pas nécessaire, à toi de voir.
    Tes méthodes vont donc modifier l'instance du document à l'intérieur d'un "InstanceDoc" commun.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  4. #4
    Membre confirmé Avatar de NizarK
    Inscrit en
    Mars 2007
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 189
    Par défaut
    Ta solution a l'air pas mal ....
    moi ce que j'avais essayé c'est d'envoyer this (donc la classe principale du prog) dans chacune des méthodes ...je crois que ça rejoint un peu ce que tu as fait...
    Reste une question : est ce que le passage en paramètre de l'objet this ne consomme pas plus de mémoire sachant que je le fais 10 à 15 dans ma méthode main ? .... si j'ai bien compris non puisque le passage se fait encore et toujours par référence...

  5. #5
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Tout à fait.

  6. #6
    Membre confirmé Avatar de NizarK
    Inscrit en
    Mars 2007
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 189
    Par défaut
    Merci à tous

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

Discussions similaires

  1. Passage par référence
    Par difficiledetrouver1pseudo dans le forum Langage
    Réponses: 9
    Dernier message: 28/09/2005, 11h17
  2. [EJB] Passage des paramètres par référence
    Par salome dans le forum Java EE
    Réponses: 2
    Dernier message: 05/07/2005, 11h25
  3. Problème très rapide de passage par référence
    Par Noxexplorer dans le forum ASP
    Réponses: 2
    Dernier message: 23/06/2005, 10h02
  4. Réponses: 3
    Dernier message: 19/05/2005, 10h46
  5. Passage d'un tableau par référence?
    Par sebduth dans le forum C
    Réponses: 9
    Dernier message: 16/07/2003, 18h32

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