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 :

Définition de méthodes de Callback


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut Définition de méthodes de Callback
    Salut,
    quelqu'un connait-il la méthode la plus simple pour définir une fonction de Callback en général ? Y a-t-il un moyen d'appeler dynamiquement une méthode d'objet en fonction d'un String ? ca donnerait un truc du style mais comment effectuer le cast, avec un getClass() ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class Callback {
    private Object source;
    private String method;
     
    public Callback(Object source, String method) {
    this.source = source;
    this.method = method;
    }
     
    public void run() {
    // ici le but étant d'appeler la méthode this.method de this.source
    }
    }
    J'ai vu quelques exemples créant une classe Function ou encore les "méthodes outrepassées" mais un peu lourds.
    Quelqu'un aurait-il une solution simple à proposer ?
    Merci d'avance.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    961
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 961
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    object.getClass().getMethod(name, parameterTypes).invoke(object, args);
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Method[] methodsArray = object.getClass().getMethods();
    Rechercher la fonction avec le bon nom.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    method.invoke(object, args);
    Conseil gratuit : mettre un marque page sur le lien dans ma signature.

  3. #3
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Merci, ça marche nickel

  4. #4
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Par contre c'est pas très pratique pour l'appel sans arguments :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.getClass().getMethod("method", new Class[]{}), new Object[]{})
    si je mets les types et les arguments à null j'ai un warning d'Eclipse.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    961
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 961
    Par défaut
    D'après la Javadoc vous avez le droit à null pour ces deux arguments. Quelle version de Java utilisez vous?

    Sinon il y a toujours la possibilité de se faire sa propre méthode.

  6. #6
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Bonjour,
    j'utilise la 1.6.
    Oui effectivement ça pourrait être pratique de créer une méthode pour ça, merci.

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

Discussions similaires

  1. Définition de méthodes pour une classe template
    Par Pragmateek dans le forum Langage
    Réponses: 13
    Dernier message: 20/12/2008, 00h46
  2. Réponses: 4
    Dernier message: 08/01/2008, 13h54
  3. Définition des méthodes agiles et raison de leurs succès ?
    Par benito1er dans le forum Méthodes Agiles
    Réponses: 2
    Dernier message: 26/12/2007, 13h23
  4. Réponses: 3
    Dernier message: 19/03/2007, 01h19
  5. utiliser une méthode en callback
    Par inertia dans le forum MFC
    Réponses: 3
    Dernier message: 23/06/2005, 17h56

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