Gwt 请求工厂泛型方法属性

Gwt 请求工厂泛型方法属性,gwt,requestfactory,Gwt,Requestfactory,可以在请求方法中使用泛型吗?或者,如果不是,如何解决这个问题 假设我想实现分页。所以在我的请求界面中,我有这样的方法: public List<UserProxy> getUserList(int offset, int limit); public List getUserList(int offset,int limit); 但该列表只返回有限的数据。对于分页实现,我还需要全部元素。在RPC样式中,我将使用结果对象: public MyResultObject<User

可以在请求方法中使用泛型吗?或者,如果不是,如何解决这个问题

假设我想实现分页。所以在我的请求界面中,我有这样的方法:

public List<UserProxy> getUserList(int offset, int limit);
public List getUserList(int offset,int limit);
但该列表只返回有限的数据。对于分页实现,我还需要全部元素。在RPC样式中,我将使用结果对象:

public MyResultObject<User> getUserList(int offset, int limit)
public MyResultObject getUserList(整数偏移量,整数限制)
在MyResultObject中,我将List和totalCount存储为属性。不幸的是,在RF中,我无法做到这一点。同样在GWT-RPC中,我可以在一个请求中使用命令模式和一个方法的检索列表以及另一个方法的totalcount


如何与元素列表同时获取totalcount

您可以有一个MyResultObjectProxy(公认专门用于UserProxy),也可以在同一HTTP批处理请求中发出两个请求(列表和总计数):

MyContext ctx=factory.context();
getUserList(偏移量,限制).to(新接收器(){…});
ctx.getUserTotalCount().to(新接收器(){…});
ctx.fire();

由于GWT 2.4,RF支持多态性,所以也许您可以使用一个MyResultObjectProxy,它不专门用于特定的EntityProxy(或值代理),尽管我真的不确定它是否真的有效。

所以您的第一个方法是有效的,但是我必须为要在分页视图中显示的每个实体编写我的ResultObjectProx。
我认为第二个是最好的,但我需要编写两个接收器并将它们同步在一起。事实上,我编写了ReceiverManager,它可以做到这一点,但在我看来,使用样板代码仍然是一种笨拙的方法。第三种方法最好是不专门编写特定的代理,但它不能作为代理工作。不接受泛型或对象作为列表元素。还有其他想法吗。第三种选择:即使您只是简单地使用
列表
?或者让所有实体代理扩展相同的基本接口,并使用该接口。当然,您必须添加强制转换,但这仍然是较少的样板代码和较轻的编译代码。它几乎可以工作。我有以下代理:
@ProxyFor(value=MyResult.class)公共接口MyResultProxy扩展了ValueProxy{public List getList();public Integer getTotalCount();}
但是在客户端我得到了ValueProxy,我无法将其转换为UserProxy。无论如何,感谢您对批处理的提示。也许在bug被修复之前,这是唯一有效的解决方案。谢谢你,托马斯。