Java序列化readObject输入与readExternal输入

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 它接受接口类型的引用 那么,为什么要这样谨慎呢?这

readObject的签名为:

private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException;
它接受一个具体类类型的引用

readExternal的签名为:

void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
它接受接口类型的引用


那么,为什么要这样谨慎呢?这只是疏忽吗

ObjectInputStream
有几个方法不在
ObjectInput
中,它们专门用于支持默认序列化机制。因此,序列化需要来自
ObjectInputStream
,但外部化可以来自任何
ObjectInput