我遇到了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);
答案 0 :(得分:1)
[Ljava.lang.Object;表示一个数组。您是否尝试将数组转换为List?我不熟悉您列出的andriod或client.call方法,但您可能希望使用(client.call("someserv.checkwhattoresend", userClientID, filesList)).getClass().getName()
检查该呼叫的返回类型
答案 1 :(得分:0)
程序checkwhattoresend返回
List<Object[]>,
不是
ArrayList<Object[]>