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

wwodge7n  于 2022-09-21  发布在  其他
关注(0)|答案(2)|浏览(162)

有没有一种方法可以解析一个Groovy脚本中的所有类?立即解析一个类:

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 Containers将同时包含MainApp类和OtherMainApp类

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

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

谢谢,

费德里科

f0brbegy

f0brbegy1#

无法执行以下操作:

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

不过,您可以自己做这件事:您可以自己解析类(只需计算{}对),将其转储到一个新文件中,然后就可以继续了。难看?是。疼吗?非常。可能?也许吧。更好的解决方案?直到Groovy修复了这个错误。

yduiuuwa

yduiuuwa2#

这个问题已经被问了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

相关问题