【问题标题】:java.lang.Integer cannot be cast to [Ljava.lang.Object;java.lang.Integer 不能转换为 [Ljava.lang.Object;
【发布时间】:2012-05-01 13:49:16
【问题描述】:

我目前正在使用 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; - 我想知道是否有办法解决这个问题?

【问题讨论】:

  • 看起来client.execute 的返回值实际上不是Object[],而是Integer
  • 或者Object

标签: java xml-rpc


【解决方案1】:

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

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。但话又说回来,也许这就是你已经在做的......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-27
    • 2019-04-26
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-19
    相关资源
    最近更新 更多