2012-05-05 40 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

这两个链接都损坏/需要注册。 –