来自String模板的动态函数调用

时间:2012-05-05 00:43:59

标签: java stringtemplate stringtemplate-4

是否可以通过StringTemplate动态生成的函数调用Java类的函数?

例如,以下是具有三个函数的Java类

public class RegionManager {

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

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

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

}

现在,我的String模板文件包含$CS.name$ ..值可能是“Room”,“Floor”,“Center”。

基于$CS.name$值,我想调用函数(可能是getRoom(), getFloor(), getCenter())。请注意,当我写String模板文件时,我不知道,将调用哪个函数。

2 个答案:

答案 0 :(得分:3)

您无法调用静态函数。你只能在对象上调用getter。

答案 1 :(得分:2)

如前所述,您无法在模板中调用静态函数。但是,还有另一个有趣的机制,可以帮助您满足您的要求。

StringTemplate库具有自定义Renderers的机制。

您可以构建一个渲染器,它将根据输入和/或可能的格式调用您的静态方法,例如:

<your_item; format="your_format">

我希望这有助于解决您的问题。它在不同的模板中帮助了我很多。