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

avec Java Discussion :

Concatener deux variables pour qu'elles forment une seule variable


Sujet :

avec Java

  1. #1
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut Concatener deux variables pour qu'elles forment une seule variable
    Voila j'ai une boucle for en java comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (int i = 1; i < 4; i++) {
                System.out.println(fonc.f(i));
            }
    Je voudrai concaténer fonc avec le i du for pour former une variable fonc1 car j'ai plusieur fonction fonc1, fonc2... Merci de m'aider...

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Fais autrement.

    Un truc genre :

    - quelque part :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private ClasseSuperUtile[] tableau = faireLeTableauDeMesObjets();
    - ailleurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (int i = 1; i < 4; i++) {
     System.out.println(tableau[i].f());
    }
    Bon, bien sûr, comme tu parles de fonction et que je sais pas si tu voulais dire objet, classe ou méthode, il va peut-être falloir adapter. Mais l'idée c'est ça.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    désolé mais je n'ai pas du tout compris ce que vous voulez dire...

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Et moi je n'ai pas très bien compris ce que tu demandes.
    Peut-être que si tu nous donnais un exemple concret...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Il n'est pas possible de créer dynamiquement des variables dans un langage statique comme l'est java.

    De fait pour contourner cela il suffit de stocker les variables crées pendant la bouble dans un tableau (comme le fait thelvin) ou dans une collection (une classe implémentant l'interface List, genre ArrayList, fera amplement l'affaire)
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  6. #6
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    mais ou est le sens quand on les stock dans un tableau ???Je pourrai pas les utiliser comme je veux moi... non ?

  7. #7
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Citation Envoyé par zemzoum89 Voir le message
    mais ou est le sens quand on les stock dans un tableau ???Je pourrai pas les utiliser comme je veux moi... non ?
    Ben tu veux les utiliser comment? Tu veux y accéder par le nom que tu définis?

    Dans ce cas utilise une map avec en clé le nom que tu veux donner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Map<String, Int> map = new HashMap<String, Int>() //en supposant que fonc.f() renvoie un int
     
    for (int i = 1; i < 4; i++) {
                map.put("fonc"+i, fonc.f(i));
            }
    Et après tu y accèdes comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    System.out.println(map.get("fonc1"));
    System.out.println(map.get("fonc2"));

    Après je ne sais pas si j'ai bien compris ce que tu voulais.

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  8. #8
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    ah ben mais moi je veux utiliser ce que renvoie map.get() comme nom de fonction est ce possible ?

  9. #9
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Citation Envoyé par zemzoum89 Voir le message
    ah ben mais moi je veux utiliser ce que renvoie map.get() comme nom de fonction est ce possible ?
    C'est à dire?

    Tu veux appeler une fonction qui s'appelle fonc1 ou fonc2?

    Et que renvois fonc.f()?

    Sois plus clair, explique dans le détail ce que tu veux exactement faire.

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  10. #10
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 980
    Points
    7 980
    Par défaut
    Tu as un classe qui posse des methodes fonc1, fonc2, fonc3, fonc4 et ainsi de suite et tu voudrais les appeler une a une, a l'interieur d'une boucle for ?

    Si c'est cela, il te suffit de chercher apres la dite methode, (avec reflection) et ensuite de l'invoker non ?


    Il n'est pas possible de créer dynamiquement des variables dans un langage statique comme l'est java.
    Euh et BCEL il ferait pas un truc du genre et même mieux ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    vouloir appeler foncX ou X est un index dans une boucle relève d'une erreur de design de l'application à la base. Oui c'est faisable (via la reflection) mais
    1) c'est lourd
    2) c'est moche
    3) ca pose des problème au niveau du securityManager
    4) comem déjà dit ça présente des problème de designe

    Quand à BCEL et cie qui crée des variable 'au vol' ou des méthoes 'au vol', ces mécanisme créent en réalité un classe supplémentaire qui hérite de la classe 'enrobée' et qui contient les méthodes / propriétés ajoutées. Rien qu'on ne puisse déjà faire à la compilation

  12. #12
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Euh et BCEL il ferait pas un truc du genre et même mieux ?
    Ensuite savoir si l'instrumentation de bytecode fait partie du langage, et est accessibles aux débutants.....
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  13. #13
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 980
    Points
    7 980
    Par défaut
    Nous sommes bien d'accords
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  14. #14
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    Ahhh j'ai très bien compris ce que vous voulez dire, merci beaucouup, dites moi seulement c'est quoi BCEL??

  15. #15
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par zemzoum89 Voir le message
    Ahhh j'ai très bien compris ce que vous voulez dire, merci beaucouup, dites moi seulement c'est quoi BCEL??
    Quelque chose qu'il vaut mieux que tu évites vu ton niveau actuel. Cherche sur google, tu trouveras vite fait la réponse...

    Sinon de façon plus simple, raconte le cas d'utilisation qui correspond à ce que tu cherches à faire. A quoi correspondent ces n fonctions, que sont tes objets et que cherches tu à faire?
    Raconte nous un peu plus en détail ce que tu cherches à faire, nous pourrons t'aider à modéliser cela de façon propre et fiable.
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  16. #16
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    Merci beaucoup pour votre aide... c'est très gentil de votre part...

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 17/06/2015, 10h41
  2. Réponses: 7
    Dernier message: 03/01/2012, 11h14
  3. Réponses: 4
    Dernier message: 14/10/2011, 16h18
  4. [PHP 5.2] Concatener deux variables pour qu'elle forment une seule variable
    Par zemzoum89 dans le forum Langage
    Réponses: 9
    Dernier message: 25/05/2010, 19h39
  5. Réponses: 4
    Dernier message: 15/08/2006, 11h28

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