无效类型代码:ObjectInputStream中的30 java
嗨,伙计们,当我尝试的时候无效类型代码:ObjectInputStream中的30 java,java,serialization,Java,Serialization,嗨,伙计们,当我尝试的时候 If(in.readObject() instanceof String[])a = (String[]) in.readObject; 其中'in'是objectinputstream,我得到一个'invalid type code:30' 但是没有if语句 a = (String[]) in.readObject; 我没有错 你应该这样做: Object o = in.readObject(); if (o instanceof String[]) {
If(in.readObject() instanceof String[])a = (String[]) in.readObject;
其中'in'是objectinputstream,我得到一个'invalid type code:30'
但是没有if语句
a = (String[]) in.readObject;
我没有错 你应该这样做:
Object o = in.readObject();
if (o instanceof String[]) {
a = (String[]) o;
}
对象输入流可以包含多个对象。每次调用
readObject()
时,它都会读入当前对象,然后向前移动。这意味着再次调用readObject()
将尝试读取下一个对象
因此,在上面的代码中,您正在读取两个对象,而不是两次相同的对象
要确保仅读取第一个对象,请尝试以下操作:
Object obj = in.readObject();
if (obj instanceof String[]) {
a = (String[]) obj;
}
注意我们只调用一次readObject()
,然后检查存储在obj
变量中的结果值。适当地铸造它