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 :

[Reflection][Bean] Appel d'une méthode dynamiquement


Sujet :

API standards et tierces Java

  1. #1
    Membre du Club Avatar de eraim
    Inscrit en
    Mars 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 98
    Points : 63
    Points
    63
    Par défaut [Reflection][Bean] Appel d'une méthode dynamiquement
    J'aimerais en fait programmer qqch d'identique à l'instanciation d'une classe dynamiquement, avec Class.forName("Nom de la classe").newInstance(), mais pour des méthodes.

    Je m'explique...

    J'ai un certain nombre de propriétés, et selon le nom de la propriété (un String), je veux pouvoir faire un "get + nom_de_la_propriété + ()" ou encore un "set + nom_de_la_propriété + (String)"...

    Est-ce possible de le faire ?
    eraim

    "Nous gagnerions plus de nous laisser voir tels que nous sommes, que d'essayer de paraître ce que nous ne sommes pas"
    [François de La Rochefoucauld]

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    OUI C POSSIBLE :
    Une fois un objet de classe Class obtenu, il est possible de faire de l'introspection (reflection) sur les classes, c'est-à-dire trouver dynamiquement les membres ou constructeurs de la classe et d'y accéder.

    Par exmple, la méthode getDeclaredMethods(), appliquée à un objet classe c, retourne un tableau d'objets de la classe java.lang.reflect.Method . Ce tableau contient toutes les méthodes déclarées dans la classe repésentée par c, sauf les méthodes héritées, quelle que soit leur visibilité. La méthode getMethods()retourne aussi les méthodes héritées. Plus précisément, la méthode getMethod() permet de rechercher une méthode particulière en fonction de son profil ; pour cela, elle accepte en argument le nom de la méthode sous la forme d'un objet de type String et un tableau d'objets de type Class représentant le type de chacun des arguments de la méthode recherchée. Si la méthode n'existe pas, une exception NoSuchMethodException est levée.

    Une méthode ainsi retrouvée à partir d'une classe peut être appelée grâce à la méthode invoke() définie dans la classe Method.

    voila !!!!
    UML avec VIOLET

  3. #3
    Membre du Club Avatar de eraim
    Inscrit en
    Mars 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 98
    Points : 63
    Points
    63
    Par défaut
    C'est excellent !!!!
    Merci à toi, FreshVic !!!
    eraim

    "Nous gagnerions plus de nous laisser voir tels que nous sommes, que d'essayer de paraître ce que nous ne sommes pas"
    [François de La Rochefoucauld]

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/03/2008, 01h51
  2. Appel d'une méthode d'un bean JSF depuis une JSP
    Par ::Fistons dans le forum JSF
    Réponses: 4
    Dernier message: 19/10/2007, 15h43
  3. faire appel à une methode d'une classe bean
    Par senediene dans le forum Struts 1
    Réponses: 1
    Dernier message: 24/08/2006, 10h13
  4. [APPLET] beans dans applet appelé depuis une page HTML
    Par Néo-Tony dans le forum Applets
    Réponses: 1
    Dernier message: 04/01/2006, 14h54
  5. [EJB+JSP+Tomcat] Appel d'une page JSP à partir d'un bean
    Par Hakkou dans le forum Tomcat et TomEE
    Réponses: 8
    Dernier message: 02/06/2004, 15h26

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