private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException{ s.defaultWriteObject();//把虚拟机能默认虚拟化的元素虚拟化 s.writeInt(stuage);//自己完成stuage的序列化 }
oos.writeObject(stu);
第一段代码相当于重写了writeObject方法,问题是oos对象调用这个方法传入的是一个Student类型的对象stu,而重写的方法里面的需要传入参数是ObjectOutputStream s。这两个参数的类型都不一样,为什么会这样?
重写了writeObject方法传入的确实是一个ObjectOutputStream类的对象s,这个s调用方法时需要传入一个Student类的对象stu
还有你理解的参数类型不对吧!writeObject()方法指的是对某个对象进行序列化,这个对象多了去了
而上面的那个方法是指对该对象的元素能否进行序列化,做的一个区分,分为能进行默认序列化的和单独进行序列化的。这个方法不是说要对某个对象进行序列化,和你说的writeObject()方法不一样