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

API standards et tierces Java Discussion :

Introspection et création de code dynamiquement ?


Sujet :

API standards et tierces Java

  1. #1
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut Introspection et création de code dynamiquement ?
    Bonjour,

    J'ai un fichier XML me décrivant des méthodes d'accès sur des classes JAVA, que j'utilise après en introspection.

    Par contre pour certaines méthodes je souhaiterais supprimer le code initial des méthodes dans les classes et créer dynamiquement la méthode à partir du XML.

    Par exemple j'ai une méthode dans une classe :

    getProperties() qui boucle sur une liste d'objets et me retourne un tableau de ces objets.

    Je voudrais maintenant, créer de toute pièce cette classe via l'introspection, mais est ce possible ?

    Merci d'avance

  2. #2
    Membre averti
    Inscrit en
    Août 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 352
    Points : 427
    Points
    427
    Par défaut
    Tu peux générer du byte code en utilisant ASM d'ObjectWeb.
    En cherchant sur http://www.onjava.com tu trouveras un tutorial sur le sujet.
    ASM est notamment utilisé dans CGLIB qu'on retrouve dans Hibernate.

  3. #3
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Ou mieux, BCEL qui est disponible dans un jar a part ou dans le JDK 1.6.
    Romain Guy
    Android - Mon livre - Mon blog

  4. #4
    Membre averti
    Inscrit en
    Août 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 352
    Points : 427
    Points
    427
    Par défaut
    Pourquoi mieux ?
    Une petite comparaison, la première trouvée avec google : http://www.mail-archive.com/bcel-dev@jakarta.apache.org/msg00612.html

  5. #5
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Mieux parce qu'avec Java 1.6 ca fait une dependance de moins a inclure avec le programme.
    Romain Guy
    Android - Mon livre - Mon blog

  6. #6
    Membre averti
    Inscrit en
    Août 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 352
    Points : 427
    Points
    427
    Par défaut
    Je ne suis pas sur que ce soit l'élément essentiel qui va faire la différence (même si ca peut être le cas).
    Sur la valeur même de BCEL, je ne suis pas sur qu'il y ait tant que ca d'éléments pour justifier son choix par rapport à ASM. Pour ne pas qu'il y ait d'ambiguités sur ce que je dis, je m'explique : BCEL à de nombreuses qualités mais je n'en vois pas spécialement pour justifier sa supériorité sur ASM. De plus, plusieurs sources confirment qu'ASM est plus léger et plus rapide que BCEL. Je ne l'ai pas constaté moi même, mais ca peut être un élément à prendre en compte. Peut être as tu d'autres éléments d'informations sur le sujet ?

  7. #7
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    Ok, je vais voir ce que je peux faire avec ASM, BCEL ou SERP

  8. #8
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Tu dis toi meme qu'ils sont tres similaires. S'il n'y a pas de differences majeures, je prefere prendre celui qui est inclus dans le JDK.
    Romain Guy
    Android - Mon livre - Mon blog

  9. #9
    Membre averti
    Inscrit en
    Août 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 352
    Points : 427
    Points
    427
    Par défaut
    Je dis aussi qu'ASM semble être plus rapide.

  10. #10
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    "Semble" n'est pas une raison suffisante pour moi
    Romain Guy
    Android - Mon livre - Mon blog

  11. #11
    Membre averti
    Inscrit en
    Août 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 352
    Points : 427
    Points
    427
    Par défaut
    Ok, j'aurais du donner plus de détails, mais tu aurais pu aussi argumenter plutot que de te moquer de ma réponse.
    ASM est, sur ce que j'ai pu voir, entre 5 et 10 fois plus rapides que BCEL (tu as peut être des benchmarks qui donnent l'inverse).
    De plus, il faut également tenir compte du modèle de programmation proposé bien plus simple que celui de BCEL et qui n'est pas pour rien dans le fait que bon nombre de projets utilisent ASM (directement ou indirectement : Spring, Hibernate, CGLIB, AspectWerkz, dynaop, Groovy...). AspectWerkz et CGLIB par exemple sont passés de BCEL à ASM.
    Si on utilise un de ces outils/frameworks, l'argument de la dépendance à ne pas ajouter ne tient plus.

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

Discussions similaires

  1. Problème du retour à la ligne sur création de code dynamique
    Par zogug31 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 16/10/2013, 07h23
  2. Création de code en dynamique
    Par fxleo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/06/2013, 14h02
  3. [PowerBuilder] Création d'objets dynamiques
    Par Béné123456789 dans le forum Powerbuilder
    Réponses: 3
    Dernier message: 12/06/2006, 00h33
  4. [FLASH MX2004] Création d'objet dynamiquement
    Par noarno dans le forum Flash
    Réponses: 3
    Dernier message: 15/12/2004, 11h00
  5. Création de codes barres dans un état access
    Par caporal dans le forum IHM
    Réponses: 5
    Dernier message: 15/11/2004, 14h13

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