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;にキャストできません。-この問題を回避する方法があるかどうか疑問に思いましたか?

4

1 に答える 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を作成したいと思います。しかし、繰り返しになりますが、おそらくそれはあなたがすでに行っていることです...

于 2012-04-19T23:41:48.490 に答える