Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无效类型代码:ObjectInputStream中的30 java_Java_Serialization - Fatal编程技术网

无效类型代码: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
变量中的结果值。适当地铸造它