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

Java Discussion :

récupérer une annotation


Sujet :

Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 49
    Points : 43
    Points
    43
    Par défaut récupérer une annotation
    Bonjour,

    J'ai crée ma propre annotation :

    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.TYPE)
    public @interface MonAnnotation {

    /**
    * @return les différents domaines
    */
    EDomain[] domaine();

    /**
    * @return la traduction utilisée dans le fichier xml */
    String displayedName();

    }
    Cette annotation est utilisée dans la classe Home :
    @Entity
    @MonAnnotation(domaine = { EDomain.CSP, EDomain.MPP, EDomain.NPP }, displayedName = "Maison")
    public class Home {
    ...
    }
    Cette annotation est en faite présente pour écrire un fichier xml contenant une description de la bdd gégénré de manière automatique et contenant les traductions ... pour un traitement autre ensuite.

    Mais je n'arrive pas à récupérer les infos décrite dans mon annotation.

    Annotation[] annotationsClass = classe1.getDeclaredAnnotations();
    me retourne un tableau vide ... pourquoi ? j'ai 2 annotations ...

    Merci pour votre aide

    Lily

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    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 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Petite question peu être hors sujet, mais EDomain c'est quel type en fait (je penche bien sure pour l'enum) ?

    Sinon quand je run ton exemple, moi j'ai un tableau qui contient 2 entrée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @org.hibernate.annotations.Entity(polymorphism=IMPLICIT, dynamicInsert=false, selectBeforeUpdate=false, persister=, mutable=true, optimisticLock=VERSION, dynamicUpdate=false)
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @ownEd.MonAnnotation(domaine=[CSP, MPP, NPP], displayedName=Maison)
    (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

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 49
    Points : 43
    Points
    43
    Par défaut
    En effet EDomain est bien un enum ...
    Vu que cela fonctionne avec un exemple simple ... Je vais rechercher ce qui cloche dans mon appli ...
    Pour info, en changeant l'enum par une String, le pb est tjrs le même ...
    et lorsque je n'ai plus mon annotation et juste "@Entity" j'ai aussi le pb, ... et lorsque j'ajoute l'annotation a une autre classe cela fonctionne ...
    Donc c'est plus lié à la classe qui en fait a pour définition :
    public class Home extends PersistentObject implements Serializable {
    ...
    }

  4. #4
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Est-ce que les annotations sont biens sur la classe Home ? Et non sur une classe parente ?

    Avez-vous bien vérifier que vous faites le contrôle sur la bonne classe ?
    Exemple :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class TestAnnotation {
      public static void main(String[] args) {
        Class<?> clazz = Home.class;
        System.out.println(clazz);
        System.out.println(Arrays.toString(clazz.getDeclaredAnnotations());
      }
    }
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 49
    Points : 43
    Points
    43
    Par défaut
    Le petit test est OK, j'imagine donc que le pb vient du code qui précède l'appel à "getDeclaredAnnotations()" .
    Je vais donc creuser de se coté.
    Merci pour votre aide. Je vous tiens au courant des que j'ai trouvé ...

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/01/2009, 17h34
  2. [Ant] Récupérer une variable d'envionnement
    Par lionel69 dans le forum ANT
    Réponses: 4
    Dernier message: 25/01/2007, 10h22
  3. [XSL]récupérer une valeur de plusieurs fichiers XML
    Par snoop dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 05/02/2006, 00h32
  4. [OLE Excel] Récupérer une colonne d'un coup
    Par Nemerle dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/05/2004, 15h56
  5. Comment récupérer une adresse MAC ?
    Par psau dans le forum Développement
    Réponses: 7
    Dernier message: 19/07/2002, 17h26

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