2011-09-11 23 views
0

我有ClassCastException的問題 - 也許你可以請建議的東西?我試圖通過XMLRPC從服務器獲得響應並獲得CCE。ClassCastException與XMLRPC調用獲取ArrayList

Here`s我怎麼稱呼它:

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; 
} 

應該沒有服務器端的缺陷。

UPDATE。解決簡單地作爲這種:

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

回答

1

[Ljava.lang.Object;表示一個數組。你是否試圖將一個數組轉換爲列表?我不熟悉的Andriod或您列出的client.call方法,但你可能要與(client.call("someserv.checkwhattoresend", userClientID, filesList)).getClass().getName()

+0

它顯示[Ljava.lang.Object,但 列表 filesResent =(列表)client.call(「someserv.checkwhattoresend」,userClientID,filesList);拋出確切的相同的異常... – Nick

+0

Does Object []'filesResent = client.call(「someserv.checkwhattoresend」,userClientID,filesList );'拋出任何錯誤? – aldrin

+0

它確實。但是 對象filesResent = client.call(「someserv.checkwhattoresend」,userClientID,filesList); 正常工作 – Nick

0

checkwhattoresend返回

List<Object[]>, 

不是程序

ArrayList<Object[]> 
+0

列表 filesResent =(名單)client.call(「someserv.checkwhattoresend檢查調用的返回類型「,userClientID,filesList); 拋出同樣的異常:( – Nick

+0

爲什麼你認爲你需要在這種情況下,投? – duffymo

+0

因爲Eclipse說類型不匹配(不能做的對象 - >目錄) – Nick