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

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无法转换为[Ljava.lang.Object; - 我想知道是否有解决这个问题的方法?

3
client.execute 的返回值似乎不是 Object[],而是一个 Integer - Louis Wasserman
1
或者可能是一个Object - Jordão
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。但是也许这已经是你正在做的事情了...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接