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 :

Une méthode void avec un nombre non prédéfini de paramètres


Sujet :

Java

  1. #1
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 90
    Points : 83
    Points
    83
    Par défaut Une méthode void avec un nombre non prédéfini de paramètres
    Bonjour,

    je voudrais générer un fichier XML contenant certains paramètres (des Noeud = child). Je suis arrivé à créer un fichier XML avec 3 Noeuds (que je mets dans les paramètres de la méthode). seulement, je ne vais pas toujours créer un fichier avec 3 Noeuds uniquement, je peux créer des fichiers avec 5, 10, 100 ou 1000 Noeuds et je pense que c'est assez bete de définir une méthode pour chaque nombre de Noeud . J'ai pensé à la solution de donner comme paramètre à la classe un nombre n des Noeud à afficher dans le fichier XML mais je me rend compte tout de suite du problème suivant: si j'ai 5 Noeud et je ne veux afficher que 2 Noeud , le choix se portera automatiquement sur les deux premiers, non?! alors que je voudrais choisir spécifiquement quels sont les Noeud à afficher.
    voici le code permettant la création de 3 noeuds prédéfinis et je voudrais savoir comment le transformer pour que le nombre de noeuds ne soit pas prédéfinis:
    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
     
     public static final Namespace GRAPH_NS = Namespace.getNamespace("http://graphml.graphdrawing.org/xmlns/graphml");
     
          public void setFileXML (Element child1, Element child2, Element Edge){
            final Namespace XSI_NS = Namespace.getNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
            Document document = new Document();
          //  Element root = new Element("graphml");
     
            // Crée un élément dans un namespace
            Element root = new Element("graphml", GRAPH_NS);
            root.setAttribute("schemaLocation","http://graphml.graphdrawing.org/xmlns/graphml",  XSI_NS);
     
            Element key1 = new Element("key");
            Element key2 = new Element("key");
            Element key3 = new Element("key");
     
     
            key1.setAttribute("id", "x").setAttribute("for", "node");
            key1.addContent(new Element("default").setText("0"));
     
            key2.setAttribute("id", "y").setAttribute("for", "node");
            key2.addContent(new Element("default").setText("0"));
     
            key3.setAttribute("id", "name").setAttribute("for", "node");
            key3.addContent(new Element("default").setText(" "));
     
     
            Element child0 = new Element("graph");
            child0.setAttribute("edgedefault", "directed");
     
     
            //
            // Add the child to the root element and add the root element as
            // the document content.
            //
     
            root.setContent(key1);
            root.addContent(key2);
            root.addContent(key3);
            root.addContent(child0);
     
            child0.addContent(child1);
            child0.addContent(child2);
     
     
     
            document.setContent(root);
     
            try {
                FileWriter writer = new FileWriter("Graph1.xml");
                XMLOutputter outputter = new XMLOutputter();
     
                //
                // Set the XLMOutputter to pretty formatter. This formatter
                // use the TextMode.TRIM, which mean it will remove the
                // trailing white-spaces of both side (left and right)
                //
                outputter.setFormat(Format.getPrettyFormat());
     
                //
                // Write the document to a file and also display it on the
                // screen through System.out.
                //
                outputter.output(document, writer);
                outputter.output(document, System.out);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2011
    Messages : 65
    Points : 88
    Points
    88
    Par défaut java.util.list
    Salut à toi,

    utiliser une List<Element> n'est pas une solution envisageable? Il me semble que c'est ce qu'il y a de mieux plutôt que de s'amuser avec des entiers pour donner le nombre d'élément à créer. Ensuite tu te sers d'un foreach et d'une condition si nécessaire... Si cette solution n'est pas envisageable dis-nous en plus sur ton application, ça permettra d'être plus précis dans les réponses.

  3. #3
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Sinon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void setFileXML(Element... children);
    Avec ceci : http://java.developpez.com/faq/java/...EYWORD_ellipse

  4. #4
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 90
    Points : 83
    Points
    83
    Par défaut
    Citation Envoyé par Hizin Voir le message
    Sinon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void setFileXML(Element... children);
    Avec ceci : http://java.developpez.com/faq/java/...EYWORD_ellipse
    oui, ca me semble une bonne solution mais comment faire les traitements sur chaque child à l'intérieur de cette méthode ?
    J'ai pensé à une boucle for mais je ne vois pas comment l'exploiter ici ..

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2011
    Messages : 65
    Points : 88
    Points
    88
    Par défaut
    Si tu fais ça dans un type List tu peux tout simplement faire un:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for(Element el: listeElements) {
          //Traitement sur chaque élément
    }

  6. #6
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Pareil avec l'ellipse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public void setFileXML(Element... children)
    ...
    for (Element e : children)
    // tes traitements
    ...

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2011
    Messages : 65
    Points : 88
    Points
    88
    Par défaut
    Forcément les deux sont du type Iterable

  8. #8
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 90
    Points : 83
    Points
    83
    Par défaut
    Citation Envoyé par Hizin Voir le message
    Pareil avec l'ellipse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public void setFileXML(Element... children)
    ...
    for (Element e : children)
    // tes traitements
    ...
    Merci beaucoup, ca fonctionne très bien .

  9. #9
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Citation Envoyé par Rastafire
    Forcément les deux sont du type Iterable
    Ouaip, mais autant préciser

    @ROUGE87, content d'avoir pu t'aider.

  10. #10
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2011
    Messages : 65
    Points : 88
    Points
    88
    Par défaut
    C'est pas faux bon courage pour la suite Rouge

  11. #11
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 90
    Points : 83
    Points
    83
    Par défaut
    Citation Envoyé par Rastafire Voir le message
    C'est pas faux bon courage pour la suite Rouge
    Merci bien pour ton aide, Rastafire

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

Discussions similaires

  1. Réponses: 36
    Dernier message: 15/05/2013, 13h44
  2. Réponses: 7
    Dernier message: 30/08/2007, 14h17
  3. [AJAX] Creer une méthode ajax avec un return
    Par Khrysby dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/04/2007, 19h01
  4. Réponses: 6
    Dernier message: 07/02/2007, 15h03
  5. Réponses: 3
    Dernier message: 05/09/2006, 00h47

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