看来,如果我为i class i提供了一个为StringTemplate提供的ModelAdaptor,那么我必须响应我希望在模板中访问的每个属性。我喜欢能够为不遵循正常命名约定的属性实现getProperty,但让默认行为处理"正常"属性。是否有我可以子类以获取正常行为的类(也许是在我实现的属性时才调用Super(),或者我可以调用的方法以获取默认的字符串plate logic)?
)也就是说,我想只处理适配器中的特殊属性。
您可以扩展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");
}
}
}