2013-10-27 44 views
0

我有一個包含String []數組對象變量,我嘗試做以下的Java對象 - >的String []爲String []

String[] arr = ((String[])packet.getObject()); 

但是我收到了可怕的ClassCastException異常。你們需要什麼信息?我的數據包類如下所示:

public class Packet implements Serializable { 
private static final long serialVersionUID = 1L; 
private int type; 
private Object object; 

public Packet(int type, Object object) { 
    this.type = type; 
    this.object = object; 
} 

public int getType() { 
    return type; 
} 

public void setType(int type) { 
    this.type = type; 
} 

public Object getObject() { 
    return object; 
} 

public void setObject(Object object) { 
    this.object = object; 
} 
} 

任何想法?我試圖將該對象轉換爲一個String []。

+2

什麼類型在運行時傳遞給Paket的構造函數(或通過setter設置)?我想這不是一個字符串[];) –

+0

哦,該死的,謝謝!剛剛意識到它屬於另一個類,DOH! –

+1

在這種情況下,ClassCastException會告訴你你真的擁有哪個類。 –

回答

3

如果您收到ClassCastException,則表示數據包不包含String[]

執行下面的代碼,看看它實際持有,然後進行調試,看看原因和位置的對象存儲在數據包:

System.out.println(packet.getObject()); 
System.out.println(packet.getObject().getClass()); 

一個調試器會給你無需修改代碼此信息。

+0

事實上,它不是一個String [],而是我將它包裹的另一個類,謝謝:) –

相關問題