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 :

Recuperer le nom d'une instance


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 65
    Points : 36
    Points
    36
    Par défaut Recuperer le nom d'une instance
    bonjour,

    j'ai un petit probleme dont je ne trouve pas la solution sur la toile. En fait, j'aimerai recuperer le nom de l'instance i1 d'un objet de class C1 dans un string. En gros je voudrai me retrouver avec un string qui contient "i1".

    Sinon, je voulais egalement savoir comment je pouvais creer plusieurs instances d'une classe C1 dont les noms "s'incrementerai" dans une boucle for de facon automatique.

    j'espere avoir été assez clair (mais je nen suis pas sur)...

    je vous remercie davance.

  2. #2
    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
    malheureusement pour toi java n'est pas un langage interprété donc tu ne peux pas générer des noms de variable à la volée.


    Solution utiliser une List dans laquelle tuvas mettre tes variables créées. et pour retrouver ta variable il suffit juste de boucler dans ta liste et de faire des comparaisons avec == (qui va comparer l'adresse de l'objet)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    //Création
    List<C1> l = new ArrayList<C1>(); 
    for(int i=0, i<unNombre; i++) {
    l.add(new C1(...));
    }
     
    //récupération
    C1 class1 = unAutreObjet.getC1();
    for (C1 c : l ) {
      if(c == class1) {
        doSomething();
      }
    }
    Sinon tu tu veux vraiment avoir des noms de variables tu peux toujours passer par un hashmap mais dans les faits ça ne fera qu'utiliser un objet prenant plus de mémoire ce qui n'est pas forcément top
    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.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 65
    Points : 36
    Points
    36
    Par défaut
    merci je vais voir ce que je peux en faire dans mon cas.

    Cependant je n'ai pas encore la solution a la premiere question a savoir comment recuperer en string le nom d'un objet. Est-ce qu'il existe une methode de la classe Object ou un truc comme ca? Et est-il possible de modifier le nom d'une instance d'un objet?

  4. #4
    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
    Non, ce n'est pas possible (cf ma réponse précédente qui le disait déja, mais pas forcément très clairement)

    En même temps pas trop besoin du nom, si tu dois faire un comparaison comme je disait tu passes par == en te démerdant pour avoir dans ta classe l'objet à partir duquel tu veux faire la comparaison.



    En fait la question était que voulais faire avec le nom de l'objet?
    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.

  5. #5
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Tu cherches à faire des choses qui n'ont pas de sens en programmation objet...
    Tu veux récupérer le nom d'une variable à laquelle est associée ton objet...
    Mais un objet ne connait pas ses variables qui le références...
    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Object o1 = new Object();
    Object o2 = o1;
    o1 = null;
    Object o3 = o2;
    Que voudrais-tu récupérer ici?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Juste une idée comme ca, si tu as vraiment besoins d'un nom pour chaque objet c'est peut etre que tu devrais avoir dans ta classe C1 un attribut 'nom' de type String.

    Ceci dit je ne fais que proposer une solution a un probleme que j'ai pas vraiment compris !!!

    Mais effectivement tu ne peux pas retrouver le nom d'une variable à partir de l'instance sur laquel elle pointe.
    UML avec VIOLET

Discussions similaires

  1. Recuperer le nom d'une table avec un RowID ?
    Par Arvulis dans le forum Administration
    Réponses: 9
    Dernier message: 09/01/2008, 16h09
  2. Recupérer le nom d'une instance de classe
    Par xael974 dans le forum Langage
    Réponses: 2
    Dernier message: 04/10/2007, 09h08
  3. recuperer le nom d'une forme en VBA ?
    Par Sami-33 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/07/2007, 13h39
  4. Changer le nom d'une instance SQL Server
    Par ymerej dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 23/05/2007, 16h05
  5. Réponses: 4
    Dernier message: 07/11/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