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 :

Equivalent du "eval" d'ActionScript ?


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 46
    Par défaut Equivalent du "eval" d'ActionScript ?
    Salut

    Je suis en train de bricoler un petit programme java, qui comporte de nombreux champs textes dont les noms se présentent ainsi "c_1_1", "c_1_2" etc...
    Sachant qu'il vont subir le même traitement, j'aimerais pouvoir travailler sur ces objets dans une boucle sans les nommer expressément. Aussi aimerais-je savoir si il existe en java un équivalent de la fonction eval() d'ActionScript (Flash), à savoir une fonction qui me permet d'obtenir un objet à partir de son nom, ce qui me permettrait de faire dans une boucle un eval("c_"+indice1+"_"+indice2").

    Quelqu'un connait-il une telle fonction ou suis-je bon pour faire du copier-coller de code ?

    Merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2006
    Messages : 197
    Par défaut
    pour ça il y a plein de type de tableaux ou autre que tu peux utiliser.

    par exemple des map ou des SortedMap te permettent de reclasser les objets.

    SortedMap a même l'avantage de pouvoir se réorganiser.

    sinon tu as toute la panoplie de Collection/Set/List/Array/ArrayList ou autre.

    tu peux les utiliser avec des iterateurs pour faire la boucle dedan par exemple.

    par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ArrayList liste = new ArrayList();
    Iterator it = liste.iterator();
    while(it.hasNext()) {
        String text = (String) it.next();
        <code>
    }
    dans ta liste tu peux biensur mettre des objets de n'importe quel type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ArrayList liste = new ArrayList();
    MonObjet m1 = new MonObjet(param);
    MonObjet m2 = new MonObjet(param);
    liste.add(m1);
    liste.add(m2);
     
    Iterator it = liste.iterator();
    while(it.hasNext()) {
        MonObjet m = (MonObjet) it.next();
        <code>
    }
    dans le 2ème cas pendant la boucle tu aura accès à tous tes objets.
    si tu travailler en java 1.5 tu peux même obliger un type dans tes listes etc.

    enfin tu as plein de possibilités comme ça.

    par exemple dans une Map ou SortedMap tu peux mettre une clé et une valeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SortedMap map = new TreeMap();
    MonObjet m1 = new MonObjet(param);
    MonObjet m2 = new MonObjet(param);
    map.put("C_1_1", m1);
    map.put("C_1_2", m2);
    dans ce cas la tu aura une clé et sa valeur qui peuvent être chaqu'un un objet.

    pour retravailler dedan tu peux aussi itérer sur la clé et prendre l'objet par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SortedMap map = new TreeMap();
    MonObjet m1 = new MonObjet(param);
    MonObjet m2 = new MonObjet(param);
    map.put("C_1_1", m1);
    map.put("C_1_2", m2);
     
    Iterator it = map.keySet().iterator();
    while (it.hasNext()) {
        String nom = (String) it.next();
        MonObjet m = map.get(nom);
        <code>
    }
    et tu peux aussi reprendre directement une valeur si tu sais exactement laquelle tu veux reprendre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SortedMap map = new TreeMap();
    MonObjet m1 = new MonObjet(param);
    MonObjet m2 = new MonObjet(param);
    map.put("C_1_1", m1);
    map.put("C_1_2", m2);
     
    MonObjet m3 = map.get("C_1_1");
    vala j'espère que ça pourra t'aider un peu^^

  3. #3
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 46
    Par défaut
    Merci d'avoir pris le temps de répondre

    Cependant, mon problème n'était pas tant dans la manière de manipuler les objets que dans la possibilité d'obtenir l'objet à partir d'un nom construit dynamiquement.

    Finalement, je me suis décidé à m'abrutir pendant 1h hier soir pour mettre 1 à 1 les objets dans un tableau, mais ma question reste valable, parce qu'il n'est pas impossible que j'en aie besoin une prochaine fois

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