java.lang.Integer不能转换为[Ljava.lang.Object;

Mic*_*ael 4 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;
Run Code Online (Sandbox Code Playgroud)

问题是,有时它会返回-1,我会得到这个错误:java.lang.Integer不能转换为[Ljava.lang.Object; - 我想知道是否有解决这个问题的办法?

Jor*_*dão 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
}
Run Code Online (Sandbox Code Playgroud)

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