做了一点手脚然后想出了这个:
爪哇
import groovy.lang.Closure ;
public class Example extends Closure {
public Example( Object owner, Object thisObject ) {
super( owner, thisObject ) ;
}
public Example( Object owner ) {
super( owner ) ;
}
public Object call( Object params ) {
System.out.println( "EX: " + params ) ;
return params ;
}
}
GooVy:
example( 'Hello World' )
和test.groovy:
import groovy.lang.Binding
import groovy.util.GroovyScriptEngine
Binding binding = new Binding()
binding.example = new Example( this )
GroovyScriptEngine gse = new GroovyScriptEngine( [ '.' ] as String[] )
gse.run( "foo.groovy", binding )
然后,我编译了Java代码:
javac -cp ~/Applications/groovy/lib/groovy-1.7.1.jar Example.java
运行groovy代码:
groovy -cp . test.groovy
然后得到输出:
EX: Hello World
编辑
Object call()
Object call(Object arguments)
Object call(Object[] args)
我重写了第二个,但是根据您的用例,您可能需要任何或所有其他的