2012-05-05 77 views
2

是否可以通過StringTemplate的動態生成函數調用Java類的函數?String模板的動態函數調用

例如,以下是三個功能

public class RegionManager { 

    public static List<String> getCenter(){ 
     return somelist; 
    } 

    public static List<String> getFloor(){ 
     return somelist; 
    } 

    public static List<String> getRoom(){ 
     return somelist; 
    } 

} 

現在,我的字符串模板文件包含$CS.name$一個Java類..的值可以是「房」,「樓」,「中心」。

基於$CS.name$的值,我想調用函數(可能是getRoom(), getFloor(), getCenter())。請注意,當我寫入String模板文件時,我不知道將調用哪個函數。

+0

請問我爲什麼要給這個問題? – Pankesh

+0

https://stackoverflow.com/a/49125672/2158970 – Yuraj

回答

3

你不能調用靜態函數。你只能在對象上調用getters。

2

如前所述,您不能在模板中調用靜態函數。然而,還有一個有趣的機制,可以幫助你滿足你的要求。

StringTemplate庫有一個自定義機制Renderers

您可以基於輸入和/或可能的格式(例如,)來構建渲染器,該渲染器將調用您的靜態方法。

<your_item; format="your_format">

我希望這將有助於解決您的問題。它在不同的模板中幫助了我很多。

+0

這兩個鏈接都損壞/需要註冊。 –