2017-04-12 65 views
0

目前,我正在開發一個項目,以從我公司的內部腳本語言(面向對象並將其他語言的相當多功能)轉換爲Groovy,該項目具有很多類似的功能。創建可在Groovy中導入和使用的庫

爲了讓代碼儘可能接近原始狀態,我試圖讓某些函數名和參數保持不變。爲了迎合這一點,我想寫一組可以導入的庫。

例如,假設我有原始腳本語言的內置方法, 我希望能夠在groovy文件中編寫此方法的定義,然後可以在需要時導入該方法,並且方法可能會叫做。

Tools.groovy

// filename: Tools.groovy 
public String foo(String bar) { 
    return bar; 
} 

,並在另一個文件

Main.groovy

// filename: Main.groovy 
import Tools; 

String bat = foo("bar") 

我知道你可以編譯的類文件放到罐子並把它們放到類路徑中,但是我需要實現的很多方法要麼需要元編程,要麼不會與對象關聯。

對不起,如果它是一個壞問題或不夠清楚。我不確定它是否可能。

乾杯

回答

1

我相信你應該能夠創建庫並在需要時重用它們。

所有你需要做的就是創建類並添加靜態方法,如果你不需要創建實例,則使用非靜態方法。然後看起來你已經意識到如何在以後繼續。

例如,您可以根據您的描述爲String,List等創建實用程序類。

順便說一下,即使您不創建庫,甚至可以在groovy中編寫一行來實現您可能需要的大部分情況。

+0

我試圖避免使用靜態方法,如Foo.bar(),但它看起來像這將是最好的選擇類表示法。 至於在String和List等庫中創建實用方法,在創建子類的時候,最好的方法是使用元編程。是否有可能創建一個可導入的String.metaClass。*方法庫? 乾杯 – rhysvo