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 :

Java annotations, récupérer la valeur


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Par défaut Java annotations, récupérer la valeur
    Hello,

    J'ai des annotations comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    @Description(description="Text for description")
    @Unit(unit="binary")
    public boolean booleanP = false;
    Je voudrais afficher genre:
    Description: Text for description
    Unit: binary
    Mais sans avoir besoin de connaitre le nom des annotations.

    J'y suis presque, j'arrive à afficher leurs noms, mais pas leurs valeurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Annotation[] a = f[i].getAnnotations();
      for(int j=0;j<a.length;j++){
        System.out.print(a[j].annotationType().getCanonicalName()+ ": ");
        System.out.println(/*Valeur de l'annotation*/);
    Comment faire?

    Merci!

  2. #2
    Membre éclairé Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Par défaut
    Pas d'idée?

  3. #3
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il suffit de rechercher les méthodes déclaré dans la classe de l'annotation, puis de les invoquer pour récupérer leurs valeurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	for (Annotation a : f[i].getAnnotations()) {
    		System.out.println(a.annotationType().getCanonicalName() + ": ");
     
    		// On recherche les méthodes de l'annotation
    		// (ce qui correspond aux propriétés des annotations :
    		for (Method m : a.annotationType().getDeclaredMethods()) {
    			System.out.println("\t" + m.getName() +
    					" = " + m.invoke(a));
    		}
    	}
    a++

  4. #4
    Membre éclairé Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Par défaut
    Nickel, merci!

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

Discussions similaires

  1. [LDAP] Java JNDI récupérer valeur
    Par drKzs dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 16/04/2009, 13h56
  2. Réponses: 4
    Dernier message: 19/01/2009, 11h12
  3. Réponses: 3
    Dernier message: 07/06/2007, 19h47
  4. Réponses: 3
    Dernier message: 23/01/2007, 09h20
  5. code java pour récupérer la valeur d'un neoud XML
    Par MASSAKA dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 14/10/2005, 15h17

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