工作随笔——Java调用Groovy类的方法、传递参数和获取返回值
2015-12-08 21:03
381 查看
接触Groovy也快一年了,一直在尝试怎么将Groovy引用到日常工作中来。最近在做一个功能的时候,花了点时间重新看了下Java怎么调用Groovy的方法、传递参数和获取返回值。
示例Groovy代码如下:
示例Java代码如下:
输出结果:
示例Groovy代码如下:
# TestGroovy.groovy 定义testC方法,传入3个参数,返回处理后的数据
def testC(int numA, int numB, int numC) { "传入参数:" + numA + numB + numC + "计算之和为:" + (numA + numB + numC) # groovy会默认返回最后一行的值 }
示例Java代码如下:
import java.io.File; import groovy.lang.GroovyClassLoader; import groovy.lang.GroovyObject; public class JavaUseGroovyTest { static Object runWithGroovyClassLoader() throws Exception { // 获取当前资源路径,用于指定Groovy脚本 String base_path = JavaUseGroovyTest.class.getResource("/").toString().split("file:/")[1]; // 使用当前线程的context创建GroovyClassLoader // parseClass()方法将文件解析成可以运行的class Class aClass = new GroovyClassLoader().parseClass(new File(base_path + "TestGroovy.groovy")); // 创建此 Class 对象所表示的类的一个新实例 GroovyObject groovyObject = (GroovyObject) aClass.newInstance(); // groovy 方法的入参,多个参数从左到右书写,无入参保持为空new Object[]{} Object[] objects = new Object[]{1, 3, 2}; // 调用方法 testC 并获得返回值(如果后者存在) return groovyObject.invokeMethod("testC", objects); } public static void main(String[] args) throws Exception { // 将返回值打印到控制台 System.out.println(runWithGroovyClassLoader()); } }
输出结果:
传入参数:132计算之和为:6
相关文章推荐
- JavaEE_Mybatis_SpringMVC_整合开发_Controller的返回值
- JAVA兼容低版本JDK的正确编译方式
- Java-----使用JNI调用本地方法
- MyEclipse安装SVN插件
- 教你彻底解决Eclipse自动补全变量…
- 使用Maven搭建Struts2+Spring3+Hib…
- Java中的Enum的使用与分析
- 2 Java语言基础组成
- 使用最新springframework 4.2.3.RELEASE + Maven 3.3.9 + eclipse(Mars.1 Release (4.5.1)) 搭建IM平台(一)
- springMVC3学习(八)--全球异常处理
- java泛型程序设计——泛型类型的继承原则
- Struts2 - 常用的constant总结
- eclipse和MyEclipse的插件安装
- JavaEE_Mybatis_SpringMVC_SpringMVC_SpringMVC的Model中数据的作用域(位置)
- Windows环境下java编译出错的解决方法
- Java实现从数据库导出大量数据记录并保存到文件的方法(转)
- greendao->报错:java.lang.NoClassDefFoundError: database.dao.DaoMaster
- 2.Spring4.0---Spring中的Bean配置
- pdf加水印,文字和图片,超链接, java itext, 这里有你想要的一切
- 从头认识java-12.4 利用反射提取类的方法与构造器