Bonjour je suis débutant en Groovy.
Je voudrais exécuter une méthode d'un objet prennant une closure contenant des méthodes à exécuter dudit objet. Si la méthode de l'objet n'existe pas alors je voudrais l'intercepter via methodMissing. J'ai essayé via la groovyConsole le code suivant mais ça ne marche pas car ça prend le methodMissing de la classe générée de groovyconsole :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class Dispatcher {
 
    def c = {start, name, args ->
        println "[${start}] ${name} : ${args}"
    }
 
    def methodMissing(String name, args){
        c 'method', name, args
    }
 
    def propertyMissing(String name, args){
        c 'property', name, args
    }
 
    def dispatch(closure){
        closure()
    }
 
    def methExist(){
        println "existence"
    }
}
 
def methodMissing(String name, args){
    println "[script method] ${name} : ${args}"
}
 
def d = new Dispatcher();
 
d.dispatch {
    methExist()
    test()
 
}
Quand j'exécute ce code j'obtiens ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
[script method] methExist : []
[script method] test : []
Qu'est ce que je manque ?

Merci !