使用XMLRPC调用ClassCastException获取ArrayList

时间:2011-09-11 16:31:42

标签: java android

我遇到了ClassCastException的问题 - 也许你可以请一些建议吗?我正试图通过XMLRPC从服务器获得响应并获得一个CCE。

以下是我的称呼方式:

Object[] filesList = new Object[] { 
    new Object[] {"somefile.txt", lengthOfThatFile},  
    new Object[] {"somefile2.txt", lengthOfThatFile2}
};    

ArrayList<Object[]> filesResent = (ArrayList<Object[]>) client.call("someserv.checkwhattoresend", userClientID, filesList);

最后一行抛出异常:

09-11 16:14:33.953: ERROR/AndroidRuntime(389): java.lang.ClassCastException: [Ljava.lang.Object;

程序checkwhattoresend如下所示:

public List<Object[]> checkwhattoresend(String userClientID, Object[] fileInfo) {
    ArrayList<Object[]> results = new ArrayList<Object[]>();
  // doing some stuff
    return results;
}

服务器端应该没有任何缺陷。

更新。简单地解决了这个问题:

Object[] filesResent = (Object[]) client.call("someserv.checkwhattoresend", userClientID, filesList);

2 个答案:

答案 0 :(得分:1)

[Ljava.lang.Object;表示一个数组。您是否尝试将数组转换为List?我不熟悉您列出的andriod或client.call方法,但您可能希望使用(client.call("someserv.checkwhattoresend", userClientID, filesList)).getClass().getName()检查该呼叫的返回类型

答案 1 :(得分:0)

程序checkwhattoresend返回

List<Object[]>, 

不是

ArrayList<Object[]>