關(guān)于ObjectOutPutStream對(duì)象oos在調(diào)用writeObject(Student s)方法如何去調(diào)用Student重寫的writeObject(ObjectOutPutStream oos)方法
ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("e:\\test\\objectSerializable.txt"));
Student s=new Student("張三",20);
/**
* 這個(gè)最后的oos.writeObject(s);在實(shí)現(xiàn)的過(guò)程中,
* 會(huì)通過(guò)反射在s中尋找方法名為writeObject,
* 參數(shù)為ObjectOutputStream的方法,
* 如果找到了就會(huì)調(diào)用s.writeObject(oos)的方法;
* 沒(méi)找到的話會(huì)使用默認(rèn)的實(shí)現(xiàn),
* 這種情況下你的這個(gè)類中的age字段由于是transient的就會(huì)丟失掉。
* 反過(guò)來(lái)讀取對(duì)象的時(shí)候也是這樣的。
*/
oos.writeObject(s);
2018-11-13
通過(guò)反射會(huì)去調(diào)用你所要序列化的對(duì)象是否有對(duì)應(yīng)名稱的方法,來(lái)決定是否采用默認(rèn)的