Java序列化readObject输入与readExternal输入
readObject的签名为:Java序列化readObject输入与readExternal输入,java,serializable,Java,Serializable,readObject的签名为: private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException; 它接受一个具体类类型的引用 readExternal的签名为: void readExternal(ObjectInput in) throws IOException, ClassNotFoundException 它接受接口类型的引用 那么,为什么要这样谨慎呢?这
private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException;
它接受一个具体类类型的引用
readExternal的签名为:
void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
它接受接口类型的引用
那么,为什么要这样谨慎呢?这只是疏忽吗
ObjectInputStream
有几个方法不在ObjectInput
中,它们专门用于支持默认序列化机制。因此,序列化需要来自ObjectInputStream
,但外部化可以来自任何ObjectInput