【Groovy】Groovy 脚本调用 ( Groovy 类中调用 Groovy 脚本 | 参考 Script#evaluate 方法 | 创建 Binding 对象并设置 args 参数 )
2023-09-14 09:07:29 时间
文章目录
一、Groovy 类中调用 Groovy 脚本
1、参考 Script#evaluate 方法分析 Groovy 类中调用 Groovy 脚本
可以参考 groovy.lang.Script 类的 evaluate 方法 , 通过 GroovyShell 在类方法中调用 Groovy 脚本 ;
在 evaluate
方法中 , 首先创建 GroovyShell
实例对象 , 然后执行该实例对象的 evaluate
方法 , 传入要调用的 Groovy 脚本对应的 File 对象 ;
public abstract class Script extends GroovyObjectSupport {
/**
* 一个助手方法,允许使用此脚本绑定作为变量范围动态计算groovy表达式
*
* @param file 要执行的 Groovy 脚本文件
*/
public Object evaluate(File file) throws CompilationFailedException, IOException {
GroovyShell shell = new GroovyShell(getClass().getClassLoader(), binding);
return shell.evaluate(file);
}
}
2、创建 Binding 对象并设置 args 参数
此处创建 GroovyShell 实例对象 涉及到传入 Binding 类型的参数 , 这个参数是 绑定作用域 变量 参数 ;
-
在 Groovy 脚本中 , 该变量本身就被封装在 Script 类中 , 可以直接调用 Binding binding 成员 ;
-
但是在 Groovy 类中 , 并没有该 Binding 成员变量 , 需要通过手动创建 Binding 实例对象 , 然后传入 GroovyShell 构造函数 ;
在 Binding 对象中的 Map variables 成员中 , 设置 args 参数 , 作为调用 Groovy 脚本的执行参数 ;
首先 , 要在 Groovy 类方法中 , 创建 Binding 对象 ,
// 注意这里创建 groovy.lang.Binding
def binding = new Binding()
然后 , 调用 Binding 对象的 setVariable 方法 , 设置 args 执行参数 ;
// 设置 args 参数到 Binding 中的 variable 成员中
binding.setVariable("args", ["arg0", "arg1"])
相关文章
- 求逆矩阵的几种方法_求逆矩阵有几种方法
- 机器学习超参调优:常用8种方法
- CRITIC方法R实现
- fabric方法、事件、对象
- Java 中对象传入方法内赋值后,为何执行完方法后对象的值未改变呢?
- 【IOC 控制反转】Android 事件依赖注入 ( 事件依赖注入具体的操作细节 | 获取要注入事件的 View 对象 | 通过反射获取 View 组件的事件设置方法 )
- 【Groovy】MOP 元对象协议与元编程 ( 使用 Groovy 元编程进行函数拦截 | 重写 MetaClass#invokeMethod 方法拦截 JDK 中已经定义的函数 )
- 【Groovy】MOP 元对象协议与元编程 ( 方法委托 | 使用 @Delegate 注解进行方法委托 )
- JSP Response.getServletContext()方法:返回session所属的ServletContext对象
- JS hasOwnProperty()方法:检测一个属性是否是对象的自有属性
- Oracle中设置对象权限的方法(oracle对象权限设置)
- MySQL新建数据库的方法(mysql创建库)
- 解决Oracle无效对象的正确方法(oracle修复无效对象)
- 权限Oracle中实现业务组授予权限的方法(oracle中业务组添加)
- JS正则表达式的相关方法(正则学习笔记1)
- FireFox下XML对象转化成字符串的解决方法
- 如何运行Python程序的方法
- 基于序列化存取实现java对象深度克隆的方法详解
- JavaScript中访问节点对象的方法有哪些如何使用
- Jquery判断$("#id")获取的对象是否存在的方法
- c#动态编译执行对象方法示例运用映射机制创建对象
- C#中线程同步对象的方法分析