小编典典

StringTemplate为给定模板定义的属性列表

java

我开始使用StringTemplate 4,并且尝试从存储在数据库中的简单字符串创建模板。我用这样的东西:

STGroup group = new STGroupString(null, someTemplateString, '$', '$');
ST st = group.getInstanceOf(someTemplateName);
st.add(someAttribute, someValue);

现在,如果我定义的全部或少于模板定义的属性,则一切正常someTemplateName。现在,如果我尝试添加一个不存在的属性,则会出现以下异常:

no such attribute: fake
java.lang.IllegalArgumentException: no such attribute: fake
  ...

这是有道理的。但是,似乎没有办法让我事先知道为template定义了哪些属性someTemplateName。我期待找到类似的东西:

bool isDef = st.isDefined(someAttribute);

但是没有这种方法。我对么?有没有办法解决?


阅读 223

收藏
2020-11-01

共1个答案

小编典典

您可以st.impl.formalArguments用来访问Map<String, FormalArgument>定义参数的位置。请注意,对于某些模板,此字段为null

2020-11-01