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 :

Comment récupérer le nom (en string) d'un attribut?


Sujet :

Langage Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 26
    Points : 8
    Points
    8
    Par défaut Comment récupérer le nom (en string) d'un attribut?
    Bonjour!
    Je souhaite récupérer le nom d'un attribut dans un string... comment faire?
    Exemple:
    int taille = 3;
    String nomDeLattribut = "taille";

  2. #2
    Membre actif Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Points : 233
    Points
    233
    Par défaut
    je crois que c'est possible avec l'api reflect (regarde la class Field)

  3. #3
    Membre actif Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Points : 221
    Points
    221
    Par défaut
    Exactement, tu peux faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Field f = ...
    ...
    f.getClass().getCanonicalName();
    Plus qu'à savoir comment tu vas trouver ton Field...

    A+

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 26
    Points : 8
    Points
    8
    Par défaut
    Excellent, en exploitant votre idée, j'arrive à récupérer exactement ce qu'il me faut...
    par contre, encore une question.

    Je souhaite récupérer le nom de l'instance d'une classe (le nom de l'objet quoi).

    Exemple:

    public class maClasse{
    ...
    afficher le nom de l'instance
    ...
    }

    public static void main(String[] args) {
    maClasse instanceDeMaClasse = new maClasse();
    }

    Voila, j'aimerai afficher la chaine de caractere "instanceDeMaClasse" en rajoutant du code dans la classe maClasse... c'est possible?

    Merciii

  5. #5
    Membre actif Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Points : 221
    Points
    221
    Par défaut
    Re,

    Si c'est juste pour faire un test et voir qui a appelé ta calsse, tu peux faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Exception e = new Exception();
    e.printStackTrace();
    Ca va t'afficher tout le stacktrace...

    Sinon je sais pas trop comment faire!

    A+

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 26
    Points : 8
    Points
    8
    Par défaut
    Ce n'est pas pour faire un test. En fait, je fais un genre de programme pour tracer un intergiciel d'eclipse...

    Il me faudrait une solution transparente... qui ne fait pas intervenir les exceptions en tout cas... mais merci pour la proposition

    D'autres idées?

  7. #7
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

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

    Informations forums :
    Inscription : Août 2002
    Messages : 237
    Points : 185
    Points
    185
    Par défaut
    En gros récupérer "instanceDeMaClasse" n'a pas de sens, dans le sens que

    Le nom de la variable n'est que le nom du pointeur de l'instance, donc l'instance ne peut connaitre les variables qui le référence.

    Et si tu accèdes à ton instance c'est que tu le fais depuis une variable...

    Est-ce suffisament clair ?

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 26
    Points : 8
    Points
    8
    Par défaut
    Oui, effectivement, c'est clair...

    C'est vraiment problématique pour mon projet...

    En passant par la machine virtuelle (en exécutant une trace de celle ci) ca devrait etre possible non?

    Merci

Discussions similaires

  1. Comment récupérer le nom du fichier sans l'extension ?
    Par altahir007 dans le forum Langage
    Réponses: 16
    Dernier message: 13/11/2009, 13h20
  2. Comment récupérer le nom des colonnes ?
    Par constantin dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/10/2005, 11h29
  3. Réponses: 2
    Dernier message: 23/07/2005, 00h10
  4. [VB.NET] Comment récupérer le nom d'un control avec le focus
    Par jayce007 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 20/01/2005, 00h53
  5. Réponses: 11
    Dernier message: 16/10/2004, 18h14

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