java.lang.Integer无法强制转换为[Ljava.lang.Object;

时间:2012-04-19 23:40:25

标签: java xml-rpc

我目前正在使用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无法强制转换为[Ljava.lang.Object; - 我想知道是否有办法解决这个问题?

1 个答案:

答案 0 :(得分: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。但话说回来,也许这就是你已经在做的......