繁体   English   中英

如何从 groovy 文件中解析多个类

[英]How to Parse multiple classes from groovy file

有没有办法解析 groovy 脚本中的所有类? 现在解析一个 class:

java.lang.Class clazz = groovyClassLoader.parseClass(new File("MainApp.groovy"))

MainApp.groovy:

class MainApp {
   def doIt() {}
}

class OtherMainApp {
  def doTheRest() {}
}

这将只返回 MainApp。

我想要这样的东西:

java.lang.Class[] clazz = groovyClassLoader.parseClass(new File("MainApp.groovy"))

其中 clazz 包含将包含 MainApp class 和 OtherMainApp class

基本上我希望能够在脚本中提取所有声明的类。

由于我正在构建的应用程序的性质,groovyc 命令无济于事

谢谢,

费德里科

不可以:

https://issues.apache.org/jira/browse/GROOVY-3793

不过,您可以自己完成:您可以自己解析类(只需计算{}对),将其转储到新文件中,然后就可以了。 丑陋的? 是的。 痛苦? 非常。 可能的? 也许。 更好的解决方案? 直到 Groovy 修复了该错误。

自从提出和回答这个问题以来已经 12 年了,但是当我试图弄清楚如何做同样的事情时,它出现在我的谷歌搜索结果的顶部。

这最终为我工作:

def loader = new GroovyClassLoader()
loader.parseClass(new File("Company.groovy"))
Class Location = loader.loadClass("tk.vallerance.spacecompanies.models.Location")
Class Event = loader.loadClass("tk.vallerance.spacecompanies.models.Event")
Class Company = loader.loadClass("tk.vallerance.spacecompanies.models.Company")

println Location
println Event
println Company

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM