【问题标题】:GWT RequestFactory - adding custom methods to proxy classes?GWT RequestFactory - 向代理类添加自定义方法?
【发布时间】:2011-11-03 00:02:28
【问题描述】:

是否可以向 GWT RequestFactory 的代理类添加方法?假设我有这个:

@ProxyFor(value = MyEntity.class)
interface MyEntityProxy extends EntityProxy {
  String getData(); // got it on server side
}

GetData() 支持服务器端,这很好。如果我想添加这样的方法怎么办:

@ProxyFor(value = MyEntity.class)
interface MyEntityProxy extends EntityProxy {
  String getData(); // got it on server side
  String getDataAndAppendQwerty(); // want this one on client side
}

我想手动实现getDataAndAppendQwerty()。这是 100% 的客户端代码,问题是我应该把实现放在哪里。

【问题讨论】:

    标签: java gwt requestfactory


    【解决方案1】:

    答案是 AutoBean categories,但它们是 not (yet) 出现在 RequestFactory。

    【讨论】:

    • 还是等待 Java 8 支持?
    • 没有更新。而且我不确定“默认方法”如何与 AutoBean 和 RequestFactory 一起使用;很确定他们会爆炸;也许尝试使用 GWT 2.8.0-SNAPSHOT? (不确定它是否支持默认方法)
    【解决方案2】:

    我不知道一个简单的方法。您可以使用包装器和委托

    public class MyEntityProxyExt implements MyEntityProxy {
    
      private final MyEntityProxy proxy;
    
      public MyEntityProxyExt(MyEntityProxy proxy) {
          this.proxy = proxy;
      }
    
      @Override
      public String getData() {
    
          return proxy.getData();
      }
    
      public Object getDataAndAppendQwerty() {
    
          return proxy.getData() + "qwerty";
      }
    }
    

    但是当您从服务器取回代理对象时,您必须在客户端上手动包装所有代理对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-30
      • 2023-03-11
      • 1970-01-01
      • 2011-08-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多