2012-05-05 5 views
2

Est-il possible d'appeler une fonction de classe Java via une fonction générée dynamiquement à partir de StringTemplate?appel de fonction dynamique à partir de modèle de chaîne

par exemple, à la suite est une classe Java avec trois fonctions

public class RegionManager { 

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

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

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

} 

Maintenant, mon fichier modèle de chaîne contient $CS.name$ .. la valeur pourrait être « Room », « Floor », « Centre ». Basé sur la valeur $CS.name$, je veux appeler la fonction (pourrait être getRoom(), getFloor(), getCenter()).

S'il vous plaît noter que lorsque j'écris le fichier de modèle String, je ne sais pas, quelle fonction va être appelée.

+0

Puis-je savoir - pourquoi donnez-vous cette question? – Pankesh

+0

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

Répondre

3

Vous ne pouvez pas appeler de fonctions statiques. Vous pouvez seulement appeler des getters sur des objets.

2

Comme cela a déjà été mentionné, vous ne pouvez pas appeler des fonctions statiques dans votre modèle. Cependant, il existe un autre mécanisme intéressant, qui peut vous aider avec vos besoins.

StringTemplate La bibliothèque possède un mécanisme de personnalisation Renderers.

Vous pouvez créer un moteur de rendu, qui appellera votre méthode statique, en fonction de l'entrée et/ou du formatage, par ex.

<your_item; format="your_format">

J'espère que cela aidera à résoudre votre problème. Cela m'a beaucoup aidé dans différents modèles.

+0

Les deux liens sont cassés/nécessitent une inscription. –

Questions connexes