首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用GroovyShell解析类

使用GroovyShell解析类
EN

Stack Overflow用户
提问于 2014-06-07 05:09:09
回答 1查看 841关注 0票数 0

我有一个groovy脚本,它需要在外部groovy脚本的类中运行方法。我知道如何在外部groovy脚本中运行方法:

代码语言:javascript
复制
new GroovyShell().parse( new File( 'foo.groovy' ) ).with {
    method()
  }

但是,如果该方法在一个类中呢?我试过了,但它给了我一个错误。

代码语言:javascript
复制
new GroovyShell().parse( new File( 'foo.groovy' ) ).with {
    theclass.method()
  }
EN

回答 1

Stack Overflow用户

发布于 2014-06-07 15:51:21

您可以使用Java反射来创建位于另一个脚本中的Class的新实例:

代码语言:javascript
复制
File sourceFile = new File("D:\\anoutherScript.groovy")
//here you have to update your classloader with external script
getClass().getClassLoader().addURL(sourceFile.toURI().toURL())
GroovyObject obj = Class.forName("ClassInAnotherObject").newInstance()
obj.doSth()

外部文件中的脚本将如下所示:

代码语言:javascript
复制
class ClassInAnotherObject{
    def doSth(){
    }
}

但是在脚本文件中可以有更多的类,也可以有更多的指令和方法调用。就像普通的groovy脚本一样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24090660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档