關(guān)于ObjectOutPutStream對象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);
/**
* 這個最后的oos.writeObject(s);在實(shí)現(xiàn)的過程中,
* 會通過反射在s中尋找方法名為writeObject,
* 參數(shù)為ObjectOutputStream的方法,
* 如果找到了就會調(diào)用s.writeObject(oos)的方法;
* 沒找到的話會使用默認(rèn)的實(shí)現(xiàn),
* 這種情況下你的這個類中的age字段由于是transient的就會丟失掉。
* 反過來讀取對象的時候也是這樣的。
*/
oos.writeObject(s);
2018-11-13
通過反射會去調(diào)用你所要序列化的對象是否有對應(yīng)名稱的方法,來決定是否采用默認(rèn)的