1

我想用三个参数创建一个 JSON-RPC 请求——字符串、整数和我自己的对象。请求应如下所示:

{"method":"MyMethod", "params":["text", 123, {"name": "any text", "num": 15}], "id":1}

理想情况下,我想创建一个这样的 AutoBean(但它不起作用):

interface JsonRpcRequest {  

    String getJsonrpc();
    void setJsonrpc(String value);

    String getMethod();
    void setMethod(String value);

    List<Object> getParams(); // ERROR: Type Object may not be used
    void setParams(List<Object> params); // ERROR: Type Object may not be used

} 

interface JsonRpcRequestFactory extends AutoBeanFactory {

    AutoBean<JsonRpcRequest> jsonRpcRequest();

}

问题是 AutoBean 框架不允许使用List<Object>内部接口。

是否有另一种方法来创建不同基于和非基于类型的元素列表/数组?

4

2 回答 2

4

不,你根本做不到。AutoBean 要求一切都是静态类型的:没有多态性,也没有混合类型的映射列表。

不过,您可能会对 RequestFactory 对 JSON-RPC 的内置支持感兴趣。

于 2012-11-04T17:50:50.583 回答
0

为什么您的参数都需要在列表中传回?当然,您不会对 a String、 anInteger和 another做同样的事情Object!把它们都单独寄回去。

此外,您不是Object通过 JSON 发送自定义,而是发送objid该对象的...所以只需发送Integer id并让服务器处理它。

于 2012-11-04T17:50:35.360 回答