2012-05-05 7 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; 
    } 

} 

とJavaクラスは今、私の文字列のテンプレートファイルが$CS.name$が含まれています。

の値に基づいて、私は関数(getRoom(), getFloor(), getCenter())を呼び出す必要があります。注意してください私は文字列テンプレートファイルを書くとき、私は知られていない、どの関数が呼び出されます。

+0

私は知っているかもしれません - どうしてあなたはこの質問に答えますか? – Pankesh

+0

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

答えて

3

静的関数を呼び出すことはできません。オブジェクト上のgetterのみを呼び出すことができます。

2

すでに述べたように、テンプレートでは静的関数を呼び出すことはできません。しかし、あなたの要求にお応えするもう一つの面白い仕組みがあります。

StringTemplateライブラリは、カスタムのメカニズムを持っていますRenderers

入力および/または潜在的なフォーマットに基づいて、静的メソッドを呼び出すレンダラーを作成できます。

<your_item; format="your_format">

私はあなたの問題を解決するために役立つことを願っています。それは私が異なるテンプレートで多くの助けになりました。

+0

両方のリンクが壊れています。登録が必要です。 –

関連する問題