关于ObjectOutPutStream对象oos在调用writeObject(Student s)方法如何去调用Student重写的writeObject(ObjectOutPutStream oos)方法

来源:6-2 transient及ArrayList源码分析

给大佬递茶

2018-11-06 11:21

ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("e:\\test\\objectSerializable.txt"));

Student s=new Student("张三",20);

/**

* 这个最后的oos.writeObject(s);在实现的过程中,

* 会通过反射在s中寻找方法名为writeObject,

* 参数为ObjectOutputStream的方法,

* 如果找到了就会调用s.writeObject(oos)的方法;

* 没找到的话会使用默认的实现,

* 这种情况下你的这个类中的age字段由于是transient的就会丢失掉。

* 反过来读取对象的时候也是这样的。

*/

oos.writeObject(s);


写回答 关注

1回答

  • qq_想飞上蓝天的猪_0
    2018-11-13 15:52:06
    已采纳

    通过反射会去调用你所要序列化的对象是否有对应名称的方法,来决定是否采用默认的

文件传输基础——Java IO流

为您介绍IO流的使用,以及对象的序列化和反序列化的内容

133755 学习 · 1030 问题

查看课程

相似问题