7
Ben groovy bir komut dosyasından bir kapatma ayıklamak çalışıyorum. Benim harika dosyasında Groovy'den java'ya nasıl kapatma yapılır?
def printMe = {str ->println str}
olarak kapatılmasını tanımlamak ve sonra aşağıdaki gibi bağlayıcı onu kapma bunu kullanmayı deneyin:
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");
Ama bu çalıştırdığınızda aşağıdaki hatayı alıyorum.
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)
Bir groovy komut dosyasından kapatma (veya düz bir yöntem) almanın bir yolu var mı?
daha yaklaşık Scoping and the Semantics of "def" teşekkür Hey, bu spot Oku Bağlama
giderek daha senaryoya yerel hale geliyor. – brice