Comment detecter une methode est invoquée

djdvd-Bonheur Messages postés 8 Date d'inscription vendredi 28 novembre 2014 Statut Membre Dernière intervention 29 avril 2015 - 27 avril 2015 à 13:53
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 30 avril 2015 à 00:44
Bonjour,

Comment detecter une méthode est invoquée par introspection java.
Quelqu'un peut m'aider.

3 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 127
27 avril 2015 à 20:53
Bonjour,

Tu ne peux pas. L'introspection permet d'obtenir des informations sur les classes et les méthodes, mais c'est une analyse du code, ça n'est pas du tout raccroché au fil d'exécution du programme.

Si tu veux détecter le moment où une méthode est invoquée, il faut modifier le code de cette méthode pour lui ajouter ce comportement.
0
djdvd-Bonheur Messages postés 8 Date d'inscription vendredi 28 novembre 2014 Statut Membre Dernière intervention 29 avril 2015
28 avril 2015 à 10:43
d'accord je vois je veux regrader
0
djdvd-Bonheur Messages postés 8 Date d'inscription vendredi 28 novembre 2014 Statut Membre Dernière intervention 29 avril 2015
29 avril 2015 à 11:02
KX,
Bonjour vous avez un example d un code pour illustrer comment modifier le comprotement de la, methode envue d avoir le fil d'exécution.
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 127
30 avril 2015 à 00:44
Bonjour,

Pour savoir si une méthode est appellée tu peux faire un simple :

void toto() {
    System.out.println("appel de toto");
    //...
}

C'est un peu le principe des logs, qui vont écrire dans un fichier ou en console chaque fois que tu fais quelque chose.

Éventuellement tu peux aussi rajouter une information utile pour comprendre qui t'appelle, c'est la stack trace du thread.

Exemple :

void toto() {
    StackTraceElement[] elements = Thread.currentThread().getStackTrace();
    System.out.println("appel de toto "+Arrays.toString(elements));
    //...
}

Bref rien de compliqué, pas besoin d'introspection ici.
0
Rejoignez-nous