簡體   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