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