• 售前

  • 售后

热门帖子
入门百科

【Groovy】Groovy 脚本调用 ( Groovy 类中调用 Groovy 脚本 | 创建 GroovyS

[复制链接]
掌舵的鱼1987 显示全部楼层 发表于 2022-1-15 11:42:12 |阅读模式 打印 上一主题 下一主题
文章目录







一、Groovy 类中调用 Groovy 脚本




1、创建 GroovyShell 对象并执行 Groovy 脚本


首先 , 创建 GroovyShell 对象 , 在构造函数中 , 需要传入 Binding 对象 ;
  1. def shell = new GroovyShell(getClass().getClassLoader(), binding)
复制代码
然后 , 设置要调用的 Groovy 脚本对应的 File 文件对象 ;
  1. def file = new File("Script.groovy")
复制代码
最后 , 调用 GroovyShell 对象的 evaluate 方法 , 执行 Groovy 脚本 ;
  1. shell.evaluate(file)
复制代码

2、代码示例


代码示例 :
  1. class Test {
  2.     void startScript() {
  3.         // 注意这里创建 groovy.lang.Binding
  4.         def binding = new Binding()
  5.         // 设置 args 参数到 Binding 中的 variable 成员中
  6.         binding.setVariable("args", ["arg0", "arg1"])
  7.         // 执行 Groovy 脚本
  8.         def shell = new GroovyShell(getClass().getClassLoader(), binding)
  9.         def file = new File("Script.groovy")
  10.         shell.evaluate(file)
  11.     }
  12. }
  13. new Test().startScript()
复制代码




二、完整代码示例




1、调用者 Groovy 脚本的类


  1. class Test {
  2.     void startScript() {
  3.         // 注意这里创建 groovy.lang.Binding
  4.         def binding = new Binding()
  5.         // 设置 args 参数到 Binding 中的 variable 成员中
  6.         binding.setVariable("args", ["arg0", "arg1"])
  7.         // 执行 Groovy 脚本
  8.         def shell = new GroovyShell(getClass().getClassLoader(), binding)
  9.         def file = new File("Script.groovy")
  10.         shell.evaluate(file)
  11.     }
  12. }
  13. new Test().startScript()
复制代码

2、被调用者 Groovy 脚本


  1. /*
  2.     下面的 age 和 age2 都是变量定义
  3.     age 变量的作用域是 本地作用域
  4.     age2 变量的作用域是 绑定作用域
  5.     一个是私有变量 , 一个是共有变量
  6. */
  7. // 打印参数
  8. println args
  9. def age = "18"
  10. age2 = "16"
  11. // 打印绑定作用域变量
  12. println binding.variables
  13. println "$age , $age2"
  14. /*
  15.     定义一个函数
  16.     在下面的函数中 , 可以使用 绑定作用域变量
  17.     不能使用 本地作用域变量
  18. */
  19. void printAge() {
  20.     println "$age2"
  21.     //println "$age"
  22. }
  23. printAge()
复制代码

3、执行结果


上面的两个 Groovy 脚本都在相同目录 ;
  1. [arg0, arg1]
  2. [args:[arg0, arg1], age2:16]
  3. 18 , 16
  4. 16
复制代码


来源:https://blog.caogenba.net/han1202012/article/details/122499426
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作