大家好,我试试看
If(in.readObject() instanceof String[])a = (String[]) in.readObject;
其中“in”是一个对象输入流,我得到一个“无效类型代码:30”;
但是没有if语句
a = (String[]) in.readObject;
我没有收到任何错误。
最佳答案
一个对象输入流可以包含多个对象。每次调用 readObject()
时,它都会读入当前对象 - 然后向前移动。这意味着再次调用 readObject()
将尝试读取下一个对象。
因此,在您上面的代码中,您正在读取两个对象 - 不是同一个对象两次。
为确保您只读取第一个对象,请尝试以下操作:
Object obj = in.readObject();
if (obj instanceof String[]) {
a = (String[]) obj;
}
注意我们只调用一次readObject()
,然后检查存储在obj
变量中的结果值。适本地类型转换它。
关于java - 无效类型代码 : 30 java in ObjectInputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20300185/