首页 > 编程 > Java > 正文

Groovy中Java调用

2019-11-08 02:50:22
字体:
来源:转载
供稿:网友

Groovy中java调用

1、Java调用Groovy类方法AGroovyClass.groovy文件
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
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表