Tôi đang cố gắng trích xuất một đóng cửa từ một tập lệnh hấp dẫn. Tôi xác định việc đóng cửa nhưLàm thế nào để nhập một đóng cửa từ groovy sang java?
def printMe = {str ->println str}
trong tập tin groovy của tôi, và sau đó cố gắng sử dụng nó bằng cách lấy nó ra khỏi ràng buộc như sau:
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");
Nhưng tôi nhận được lỗi sau khi tôi chạy này.
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)
Có cách nào để lấy một đóng (hoặc một phương thức đơn giản) từ tập lệnh hấp dẫn không?
Hey cảm ơn, đó là vị trí trên. – brice