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 :

[Evènement]Accrocher un évènement à une méthode


Sujet :

Langage Java

  1. #1
    Membre confirmé Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Points : 580
    Points
    580
    Par défaut [Evènement]Accrocher un évènement à une méthode
    Bonjour,
    Je ne sais pas si le titre est clair, donc je vais essayer d'expliquer ce dont j'ai besoin.

    En fait j'essaye de lier un évènement à une méthode, je sais que je pourrais appeler une méthode via le get/set, mais je ne veux/peux pas.

    Grosso modo, je voudrais pouvoir ajouter ces évènements via une initialisation ou autre de la classe, et durant cette initialisation, déclarer des évènements qui seront déclenché à l'appel d'une méthode.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    User u = UserFactory.createUser();
     
    public static void createUser()
    {
           init(User.class);
    // etc ...
    }
    la méthode init irait placer un écouteur sur, par exemple, l'appel de la méthode getNom()

    Et si au cours du programme quelqu'un fait appel à la méthode getNom() je souhaiterais pouvoir éxécuter un traitement.

    J'espère avoir été clair dans mon explication. J'espère également qu'il est possible de faire cà.

    Merci d'avance
    " Je préfère comprendre les gens qui ne me comprennent pas "

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour,
    Si je comprends bien, il faut passer par un proxy.

    Deux choix s'offrent à toi:
    - Utiliser les DynamicProxy du JDK, mais il faudrait ibligatoirement que les classes à proxier implémentent une interface, et tu ne pourras intercepter que les méthodes de cette interface
    - Utiliser une libraire de reflection comme CGLib ou encore JAvassist, qui te permettent de proxier n'importe quoi.

  3. #3
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    proxier
    Marrant, moi je dis "proxifier"

  4. #4
    Membre confirmé Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Points : 580
    Points
    580
    Par défaut
    Erf je suis en train d'essayer CGLIB, par contre j'ai une erreur, y a t'il d'autres lib à mettre pour le faire fonctionner ?

    voici la trace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    xception in thread "main" java.lang.NoClassDefFoundError: org/objectweb/asm/Type
            at net.sf.cglib.core.TypeUtils.parseType(TypeUtils.java:180)
            at net.sf.cglib.core.KeyFactory.<clinit>(KeyFactory.java:66)
            at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69)
    et le code qui le déclenche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Enhancer e = new Enhancer();
    Voilà, merci déjà pour ces précisions
    " Je préfère comprendre les gens qui ne me comprennent pas "

  5. #5
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Il faut télécharger et utiliser cglib-nodep plutôt que cglib tout court

  6. #6
    Membre confirmé Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Points : 580
    Points
    580
    Par défaut
    Yes ca marche, j'ai plus qu'à tester.

    Merci beaucoup, ca m'enlève une belle épine du pied.
    " Je préfère comprendre les gens qui ne me comprennent pas "

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

Discussions similaires

  1. Événement sur une méthode de classe
    Par tunizar dans le forum WinDev
    Réponses: 15
    Dernier message: 30/04/2014, 14h32
  2. Réponses: 1
    Dernier message: 28/01/2014, 17h30
  3. Réponses: 5
    Dernier message: 07/08/2008, 18h53
  4. Attacher un évènement à une méthode de la classe courante
    Par hush dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/06/2007, 00h40
  5. [Evénements]Ajout d'une méthode sur un événement d'un bouton
    Par Salam59 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/03/2006, 15h47

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