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éflection sur une méthode pour la Javadoc


Sujet :

Java

  1. #1
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Points : 2 659
    Points
    2 659
    Par défaut Réflection sur une méthode pour la Javadoc
    Bonjour,
    j'ai par exemple une méthode d'une interface :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    /**
    * Description methode
    *
    * @returnType description Return type
    * */
    public TypeRetour methode();
    Je souhaiterai retrouver par réflection dans mon application (une fois que cette interface ait été compilé, transformé en jar et chargé par mon appli) les éléments de la Javadoc ('Description methode', ...) via l'objet java.lang.reflect.Method.

    J'ai cette problématique pour les class, attribut, méthodes, paramètres et type de retour des méthodes.

    Le seul moyen pour le moment que je trouve c'est de passer par des annotations que je peux ensuite retrouver par java.lang.reflect.method.getParameterAnnotations() par exemple.

    Quelqu'un aurait une idée?
    Merci!

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    La javadoc n'est pas embarquée dans les .class, donc tu ne peux pas y avoir accès par reflection.

  3. #3
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    La javadoc est un commentaire. Son contenu n'est donc pas stocké dans le fichier .class

    Il est impossible de récupérer son contenu (sauf à parser le fichier source d'origine).



    Pourquoi voudrais-tu faire cela ?


    a++

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Points : 2 659
    Points
    2 659
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Salut,


    La javadoc est un commentaire. Son contenu n'est donc pas stocké dans le fichier .class

    Il est impossible de récupérer son contenu (sauf à parser le fichier source d'origine).



    Pourquoi voudrais-tu faire cela ?

    a++
    J'ai d'un coté une application qui me génére des interface java et des pojo sous forme de Jar ne contenant que des .class (sans les sources, contrainte métier).
    Je dois les récupérer ensuite et permettre leur édition. Et donc il me faudrait les commentaires.
    Il y a un autre problème aussi : le nom des paramètres d'une méthode d'une interface qui ne sont pas dans les .class.
    J'y arrive en passant par des annotations du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    /**
    * Description methode
    *
    * @returnType description Return type
    * */
    public @ReturnTypeAnnontation(name = "commentaire")TypeRetour methode( @Annotation(name = "nameP") String nameP);
    Mais c'est assez lourd après (c'est pas la priorité non plus, mais bon...)

  5. #5
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par deathness Voir le message
    J'ai d'un coté une application qui me génére des interface java et des pojo sous forme de Jar ne contenant que des .class (sans les sources, contrainte métier).
    Je dois les récupérer ensuite et permettre leur édition. Et donc il me faudrait les commentaires.
    Ben... Si tu dois les éditer ce serait plus logique de générer des fichiers *.java plutôt que des *.class...




    Désolé mais il n'y a pas d'autre solution propre que d'utiliser les sources. La reflection n'est pas faite pour cela.




    a++

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/05/2012, 20h58
  2. Réponses: 6
    Dernier message: 05/03/2008, 20h53
  3. Réponses: 15
    Dernier message: 28/01/2005, 04h46
  4. Réponses: 3
    Dernier message: 16/04/2004, 16h51

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