class AGroovyClass { def add(val1, val2) { val1 + val2 }}UseGroovyClass.java文件public class UseGroovyClass { public static void main(String[] args) { AGroovyClass groovyClass = new AGroovyClass(); Object result = groovyClass.add(13, 19); System.out.PRintln("result = " + result); groovy.lang.GroovyObject instance = new AGroovyClass(); result = instance.invokeMethod("add", new Object[]{31, 17}); System.out.println("result = " + result); result = instance.invokeMethod("add", new Object[]{"Hello ", "World!"}); System.out.println("result = " + result); }}可以直接使用AGroovyClass类,或借助GroovyObject类来实现。groovyc -j UseGroovyClass.java AGroovyClass.groovyjava -classpath xxx/embeddable/groovy-all-2.4.7.jar:. UseGroovyClass返回result = 32result = 48result = Hello World!2、Java调用Groovy闭包AGroovyClosure.groovy文件class AGroovyClosure { def useClosure(closure) { println "In AGroovyClosure useClosure" closure() }}UseGroovyClosure.java文件,在java中实现闭包,在类中添加call方法。public class UseGroovyClosure { public static void main(String[] args) { AGroovyClosure groovyClosure = new AGroovyClosure(); Object result = groovyClosure.useClosure(new Object(){ public String call() { return "In UseGroovyClosure call"; } }); System.out.println("result = " + result); }}编译后运行,返回In AGroovyClosure useClosureresult = In UseGroovyClosure call
新闻热点
疑难解答