[英]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.