看来,如果我为一个我提供给stringtemplate的类提供ModelAdaptor,那么我必须回复我想在模板中访问的每个属性。我喜欢能够为不遵循正常命名约定的属性实现getProperty,但让默认行为处理“普通”属性。是否有一个类我可以子类来获得正常的行为(当它不是我实现的属性时可能只调用super(),或者我可以调用以获取默认的stringtemplate逻辑的方法)?
也就是说,我只想处理适配器中的特殊属性。
答案 0 :(得分:0)
您可以扩展ObjectModelAdaptor
类。
重写getProperty
方法以包含try
/ catch
块,并使用catch
块中的自定义处理STNoSuchPropertyException
。
public class MyModelAdaptor extends ObjectModelAdaptor {
@Override
public Object getProperty(Interpreter interp, ST self, Object o, Object property, String propertyName) {
try {
return super.getProperty(interp, self, o, property, propertyName);
} catch (STNoSuchPropertyException ex) {
throw new STNoSuchPropertyException("TODO: custom handling goes here");
}
}
}