为了账号安全,请及时绑定邮箱和手机立即绑定

一个类实现序列号的接口,这个私有化的readobject writeobject 方法 我还是不懂 他们到底怎么被调用的

一个类实现序列号的接口,这个私有化的readobject writeobject 方法 我还是不懂 他们到底怎么被调用的

正在回答

2 回答

在序列化过程中,如果被序列化的类中定义了writeObject 和 readObject 方法,虚拟机会试图调用对象类里的 writeObject 和 readObject 方法,进行用户自定义的序列化和反序列化。

如果没有这样的方法,则默认调用是 ObjectOutputStream 的 defaultWriteObject 方法以及 ObjectInputStream 的 defaultReadObject 方法。

用户自定义的 writeObject 和 readObject 方法可以允许用户控制序列化的过程,比如可以在序列化的过程中动态改变序列化的数值。参考链接:http://www.hollischuang.com/archives/1140

4 回复 有任何疑惑可以回复我~

如果需要序列化的类不仅实现了Serializable接口,而且定义了readObject(ObjectInputStream in)和 writeObject(ObjectOutputStream out)方法,那么将按照如下的方式进行序列化和反序列化:ObjectOutputStream会调用这个类的writeObject方法进行序列化,ObjectInputStream会调用相应的readObject方法进行反序列化。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

一个类实现序列号的接口,这个私有化的readobject writeobject 方法 我还是不懂 他们到底怎么被调用的

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信