我目前正在使用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; - 我想知道是否有办法解决这个问题?
答案 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。但话说回来,也许这就是你已经在做的......