Java Serialization readObject输入vs readExternal输入

时间:2012-01-18 03:28:27

标签: java serializable

readObject的签名是:

private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException;

接受具体类类型的引用。

readExternal的签名是:

void readExternal(ObjectInput in) throws IOException, ClassNotFoundException

接受接口类型的引用。

为什么这种差异呢?这只是一个疏忽吗?

1 个答案:

答案 0 :(得分:2)

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