Groovyスクリプトからクロージャーを抽出しようとしています。私は閉鎖を次のように定義します
def printMe = {str ->println str}
私のgroovyファイルで、次のようにバインディングから取得して使用してみてください。
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");
しかし、これを実行すると、次のエラーが発生します。
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)
Groovyスクリプトからクロージャ(またはプレーンメソッド)を取得する方法はありますか?