字符串板模型adaptor可以落后于默认的StringTemplate属性评估吗?



看来,如果我为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");
    }
  }
}

最新更新