我有一个包含String []数组的Object变量,我正在尝试执行以下操作
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;
}
}
有什么想法吗?我正在尝试将Object转换为String []。
答案 0 :(得分:3)
如果您收到ClassCastException,则表示该数据包不包含String[]
。
执行以下代码以查看它实际存在的内容,然后调试以查看对象存储在数据包中的原因和位置:
System.out.println(packet.getObject());
System.out.println(packet.getObject().getClass());
调试器会在不需要修改代码的情况下为您提供此信息。