您可以使用RequestContext
的create()
方法在客戶端上非常好地創建代理。在你的情況下,你的代理必須是ValueProxy
而不是EntityProxy
。您不必「存儲」值代理(與實體代理相反)。
我的確和您的用例完全相同,並且工作得非常好。
@Service(MyService.class)
interface MyRequestContext extends RequestContext {
Request<List<TaskProxy>> findTasks(FilterProxy filter);
}
@ProxyFor(Filter.class)
interface FilterProxy extends ValueProxy {
// your getters and setters here
}
...
MyRequestContext ctx = ...;
FilterProxy filter = ctx.create(FilterProxy.class);
filter.setXxx(...);
// set your other filter
ctx.findTasks(filter).fire(new Receiver<List<TaskProxy>>() {
@Override
public void onSuccess(List<TaskProxy> tasks) {
// ...
}
});
作爲一個側面說明,你寫了「只xxxProxy對象可以作爲參數」,這是錯誤的;可以很好地使用原始類型(int
,boolean
等),它們的包裝類型(Integer
,Boolean
等),String
,Date
和List
或它們(或代理類型)的Set
。
嗨Stefan。如果托馬斯的答案解決了您的問題,請將其標記爲正確。反饋保持了計算器的輪子轉動。 –