5

我目前正在使用 XML-RPC 检索数据,这就是我所拥有的:

Object[] params = new Object[]{param1, param2};
Object[] obj = new Object[]{};

try {
    obj = (Object[]) client.execute("method.name", params);
} catch (XmlRpcException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} 

return obj;

问题是有时它会返回-1,我会得到这个错误:java.lang.Integer cannot be cast to [Ljava.lang.Object; - 我想知道是否有办法解决这个问题?

4

1 回答 1

7

您必须在强制转换之前检查返回值的类型。

Object result = client.execute(...);
if (result instanceof Integer) {
  Integer intResult = (Integer) result;
  ... handle int result
}    
else if (result instanceof Object[]) {
  obj = (Object[]) result;
}
else {
  ... something else
}

我很想围绕这些 RPC 调用创建一个强类型 API。但话又说回来,也许这就是你已经在做的......

于 2012-04-19T23:41:48.490 回答