Bonsoir,
j'ai un petit problème que je n'arrive pas à résoudre et c'est pour cela que je me tourne vers vous. Voilà, je veux utiliser l'introspection dans un de mes programmes et pour celà j'ai regardé sur le net pour savoir comment ça fonctionne. Après avoir compris (enfin je pense), j'ai réaliser ceci:
Mon constructeur doit me permettre de récupérer une référence sur une fonction qui se trouve dans une de mes autres classes (Uc).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 private Method fonction; public ToucheFonctionUnaire(String etiquette, String nomFonction, Uc uc){ this.etiquette = etiquette; this.uc = uc; this.fonction = this.uc.getClass().getMethod(nomFonction,null); } public void activeToi(){ this.uc.execOpUnaire(this.fonction); }
Ensuite la fonction activeToi permet d'envoyer à la fonction execOpUnaire ,qui se trouve dans Uc, la reference à la methode qui porte le meme non que la variable nomFonction.
Voici le bout de code de la fonction execOpUnaire :
Ensuite à la compilation, java me retourne cette erreur à chaque fois que je déclare une variable de type Method :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public void execOpUnaire(Method op){ op.invoke(null,this.ecran.valeur()); this.ecran.recouvrir(); }
J'aimerais donc savoir si le principe de l'introspection est correct et pourquoi java me donne cette erreur alors que dans la plupart des tuto que j'ai consulté ça fonctionne (à priori) bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ToucheFonctionBinaire.java:3: cannot find symbol symbol : class Method location: class ToucheFonctionBinaire private Method m;
Note : dans les classes où se trouvent ces fonctions j'ai fais les import de java.lang.* et java.util.*
Bonne soirée à tous![]()
Partager