Ich versuche, eine Schließung von einem groovigen Skript zu extrahieren. Ich sehe die Schließung alsWie man eine Schließung von groovy nach Java importiert?
def printMe = {str ->println str}
in meiner groovy-Datei, und dann versuchen, es zu verwenden, indem sie aus der Bindung greifen wie folgt:
GroovyScriptEngine gse = new GroovyScriptEngine(new String[] { "scripts" });
Binding binding = new Binding();
gse.run("test.groovy", binding);
Closure cls = (Closure) binding.getVariable("printMe");
cls.call("foo");
Aber ich bekomme die folgende Fehlermeldung, wenn ich dies auszuführen.
groovy.lang.MissingPropertyException: No such property:
printMe for class: groovy.lang.Binding
at groovy.lang.Binding.getVariable(Binding.java:55)
at GroovyTry.main(GroovyTry.java:19)
Gibt es eine Möglichkeit, eine Schließung (oder eine einfache Methode) von einem groovigen Skript zu ergreifen?
Hey Dank geht, dass war genau richtig. – brice